Size: a a a

2020 August 24

CD

Constantine Drozdov in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
В винде есть процесс с нулевым приоритетом, который занимается очисткой свободных страниц памяти.
Когда вызывается VirtualAlloc, то если память очищена, то она просто отдаётся процессу. Если её не успели очистить, то очистка происходит внутри VirtualAlloc. Это делается, чтобы какие-нибудь серьюрные данные не попали чужому приложению.

Т.е. если выделил новую память, для которой потребовался ViatualAlloc, то она будет обнулена (системой). Если же внутри приплюснутого кода выделил (malloc'ом), использовал, освободил, снова выделил, то может попасться уже использованная (своим же процессом) память, которая будет не обнулённой.

Как я понимаю, new обнуляет всегда.
Нет, new не обнуляет
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Ну тогда вообще пофиг, malloc это будет или new.
источник

EK

Eugene Krasnikov (ᴊɪ... in supapro.cxx
Я даже больше скажу, malloc — это тупо обёртка над heap-функциями (а new — над malloc). По крайней мере, в винде.
А heap-функции, когда им надо, вызывают функции а-ля VirtualAlloc.
Они менеджерят более мелкими кусками, чем VirtualAlloc.
источник

CD

Constantine Drozdov in supapro.cxx
Eugene Krasnikov (ᴊɪɴ x)
Я даже больше скажу, malloc — это тупо обёртка над heap-функциями (а new — над malloc). По крайней мере, в винде.
А heap-функции, когда им надо, вызывают функции а-ля VirtualAlloc.
Они менеджерят более мелкими кусками, чем VirtualAlloc.
new это две операции, она еще объект создает
источник

CD

Constantine Drozdov in supapro.cxx
как и delete
источник
2020 August 25

ip

illya palkin in supapro.cxx
template <class RandomAccessIt, class Compare = std::less<>>
void quicksort(RandomAccessIt begin, RandomAccessIt end, Compare compare = Compare()) {
   if (begin >= end) return;

   const auto pivot_index = palkin::partition(begin, end, compare);

   if (std::distance(begin, end) <= 10000) {
       quicksort(begin, pivot_index, compare);
       quicksort(pivot_index + 1, end, compare);
   }
   else {
       auto fut1 = std::async(std::launch::async, [&begin, &pivot_index, &compare] {
           quicksort(begin, pivot_index, compare);
       });
       auto fut2 = std::async(std::launch::async, [&pivot_index, &end, &compare]{
           quicksort(pivot_index + 1, end, compare);
       });

       fut1.get();
       fut2.get();
   }
}

Нормально ли вообще так распараллеливать этот quicksort ? Не будет такого что много асинков создатут много потоков и станет плохо ?
(Учебный пример)
источник

LA

Liber Azerate in supapro.cxx
illya palkin
template <class RandomAccessIt, class Compare = std::less<>>
void quicksort(RandomAccessIt begin, RandomAccessIt end, Compare compare = Compare()) {
   if (begin >= end) return;

   const auto pivot_index = palkin::partition(begin, end, compare);

   if (std::distance(begin, end) <= 10000) {
       quicksort(begin, pivot_index, compare);
       quicksort(pivot_index + 1, end, compare);
   }
   else {
       auto fut1 = std::async(std::launch::async, [&begin, &pivot_index, &compare] {
           quicksort(begin, pivot_index, compare);
       });
       auto fut2 = std::async(std::launch::async, [&pivot_index, &end, &compare]{
           quicksort(pivot_index + 1, end, compare);
       });

       fut1.get();
       fut2.get();
   }
}

Нормально ли вообще так распараллеливать этот quicksort ? Не будет такого что много асинков создатут много потоков и станет плохо ?
(Учебный пример)
Лучше в режиме по умолчанию запускать. Тогда, когда кончатся возможности системы по распараллеливанию, функции будут запускаться в обычном режиме
источник

КП

Котеечко Пухнастиньк... in supapro.cxx
Парни, тут без вас не разобраться.
Вопрос: почему  ssh-rsa-256  в файле (приватная часть) занимает 2602 байта
источник

КП

Котеечко Пухнастиньк... in supapro.cxx
из чего он вообще состоит?
источник

КП

Котеечко Пухнастиньк... in supapro.cxx
под base64 там первая часть ключа дублируется во второй
источник

КП

Котеечко Пухнастиньк... in supapro.cxx
как оно рабоатает?
источник

ПК

Побитый Кирпич... in supapro.cxx
Котеечко Пухнастиньке
Парни, тут без вас не разобраться.
Вопрос: почему  ssh-rsa-256  в файле (приватная часть) занимает 2602 байта
это не про с++
источник

ЗВ

Захар Виноградов... in supapro.cxx
Привет, друзья! Есть ли какая-нибудь функция, которая возвращает строкой полный путь к файлу программы?
источник

ПК

Побитый Кирпич... in supapro.cxx
Захар Виноградов
Привет, друзья! Есть ли какая-нибудь функция, которая возвращает строкой полный путь к файлу программы?
Есть
источник

ЗВ

Захар Виноградов... in supapro.cxx
Какая?)
источник

ПК

Побитый Кирпич... in supapro.cxx
Захар Виноградов
Какая?)
источник

ЗВ

Захар Виноградов... in supapro.cxx
И нет более примитивного аналога? о.о
источник

SB

Stanislav Bobokalo in supapro.cxx
Захар Виноградов
И нет более примитивного аналога? о.о
Python
источник

ЗВ

Захар Виноградов... in supapro.cxx
У меня просто следующая проблема. Я использую функцию из либы SDL, которая получает на вход полный путь к файлу, а мне бы хотелось, чтобы программа и в других папках могла работать, и потому я хотел получить строку с путем к проге и с помощью простенького алгоритма уже получить то, где находится общая папка, а там и нужные пути.
источник

SB

Stanislav Bobokalo in supapro.cxx
Захар Виноградов
У меня просто следующая проблема. Я использую функцию из либы SDL, которая получает на вход полный путь к файлу, а мне бы хотелось, чтобы программа и в других папках могла работать, и потому я хотел получить строку с путем к проге и с помощью простенького алгоритма уже получить то, где находится общая папка, а там и нужные пути.
Вот бы ещё кроссплатформенно это сделать
источник