У Стивена Праты,
Именно MD5 из OpenSSL и взял =). OpenSSL есть, наверное, на любой юниксоподобной машине — так что можно было не изобретать велик, хотя сначала и думал писать сам. Там, кстати, можно любой алгоритм хеширования прикрутить: наследовать AbstractHash и реализовать пару =0 методов и функцию сериализации.
За то куда виться — спасибо. ГеймДев круто, если б попасть. Не знаю, может ошибаюсь, но мне он кажется заоблачным. Там такое пересечение технологий и знаний ...=). Эмбеддед тож интересные задачки. Вообще, поглядим, сейчас пробую писать на Qt, || осваиваю php.
Думаю, во что-то вырасту =) По крайней мере, одминить нет желания возвращаться.
Проглядел заметку:
buldozer00: Stack, Heap, and Pool — реалізація пула пам’яті на C++11.
Я вот не пойму — В статье хорошая реализация пула?
Если просить у new из разных потоков память, то никогда не будет накладки, а в этой реализации будет гонка. Плюс изначально у new будет оверхед по скорости из-за использования чего-то типа мьютекса, так что сравнивать не очень правильно.
Результаты замеров с того сайта у меня похожие.
Но если внести некоторые изменения(т.е. уменьшить (в ~60 раз) размер хранимых элементов и увеличить (в 40 раз) их количество):
diff main.cpp newmain.cpp
11c11
< static const int32_t NUM_BYTES{1000 *1024};
---
> static const int32_t NUM_BYTES{16*1024};
28c28
< constexpr int32_t NUM_ALLOCS{1000};
---
> constexpr int32_t NUM_ALLOCS{40*1000};
То пул на массиве покуривает в сторонке:
_____________________________________________________________________________________
Heap Allocations took 1889 milliseconds | Heap Allocations took 520 milliseconds
Stack Allocations took 38 milliseconds | Stack Allocations took 17 milliseconds
Pool construction took 1289 milliseconds | Pool construction took 345 milliseconds
Pool Allocations took 5454 milliseconds | Pool Allocations took 846 milliseconds
_____________________________________________________________________________________
g++ -std=c++11 newmain.cpp -g -O0 -o mO0_arr_pool | g++ -std=c++11 newmain.cpp -O3 -o mO3_arr_pool
gcc version 4.8.4 (GCC).
Пул на мультисете — works like a charm, но, раз уж использовались фичи 11 стандарта, то можно было б использовать std::unordered_multiset. Было б еще лучше, я думаю.
Прошу прощения заранее, если навесил ярлыков по неопытности=).
О, спасибо, скачал книжку. У меня, распечатанный Мейерс есть, но древнее. Тот что просто Effective C++, 55 spec ways.... Кулл.
Оставлю заметку тут, не свежак, но управления памятью каcается:
Вкратце — некто Херб Саттер, рекомендует использовать make_shared вместо shared_ptr + new.
Ну а автор заметки показывает случай, когда это не эфеективно:
lanzkron.wordpress.com/...d-almost-a-silver-bullet
Не, не, это понятно. Причем, термин стек, как стопка чего-то, — первично, уже потом структуру данных напоминющую стек назвали стеком =). Мне интересно было, почему для описания факта обладания компанией определенного множ-ва технологий(вернее умения их применить) выбирается слово стек =). Достаточно понятное пояснение, как для меня, вот буквально под Вашим постом: dou.ua/...aign=reply-comment#787604 Такое =).
Есть, таки, подозрение, что не из-за дьюфольта считали =). Есть люди, что строку стр૦кой называют. Непривычно? Ну типа да. Там, уверен, что-то другое.
Вот те вещи сверху — [vb.net] [c++] [c#] и др. — кунжутные семечки? =)
вмкаВиртуалка, в смысле? =)
Cisco сертификация, или Linux. Без дампов — есть вопросы ответы на такие экзамены за прошлые года может и актуальные, они и есть дампы. Имеется ввиду честно поготовится. В Энтерпрайзы — имея такие серты, можешь идти админить куда-то, где есть большие деньги, как-то так =).
Если это не какой-то новый сервис для компании, то очень даже да, например, Lamp’a и сайтик компании. Но на продакшене так не пойдет =). За 5000 ты обслуживаешь людей, делающие дело, и получающих от этого деньги. Надо ставить то, что уже умеешь, и в, случае отказа, понимаешь как разрешить ситуацию. Можно вычленять какие-то некритичные сервисы, и с ними баловаться.
За дет. домами достаточно часто бывает закреплены волонтеры, фонды, организации, хотя понятно, что там любая помощь не лишняя. Но мы когда ездили, например, в житомирский, то могу сказать, что у деток там не плохо было.
Я как работал помогал тут:
donor.org.ua
Формат — любой — от позвонить спросить чем могу помочь волонтеру/родителю, до просто взять и пополнить карту. Тут действительно деткам очень надо.
Киев, trainee/junior С/C++
mailto:[email protected]
CV: goo.gl/KCYwdx
github: github.com/spqr33?tab=repositories верхние три.
Чуть раньше создавал топик:
dou.ua/forums/topic/14546
В комментариях рекомендовали попробоваться, буду пробовать пробоваться =).
Может быть есть у кого-то вакансия, или место на курсах с возможностями — с радостью прийму такое предложение.
Will work for food — зарплатная сторона пока не актуальна.
Благодарен, ну и классного дня всем =).
Спасибо Вам за ревью.
Там есть два вида потоков: один читает в очередь, другие берут из очереди, подсчитывают частоту. Т.е. мьютексы и защищаемые ресурсы там должны быть видны из потоков разного вида.
Я чутку исправил ситуацию, когда писал разархивацию — там сделал структуру Decompression. И в нее помещал очереди, мьютексты, другую общую инфо(для разных типов потоков). И уже в потоки отдавал ссылку на этот объект.
Получилось чуть лучше:
thread r(reader, std::ref(decompression));
vector<thread> decompressors;
for ( uint32_t i = 0; i < physical_core_quantity * 4; ++i ) {
decompressors.emplace_back(Decompressor(decompression), std::ref(decompression));
}
r.join();
for ( auto& t : decompressors ) {
t.join();
}
И побольше б OOP подхода в дизайне, а то у вас похоже на С с классами, это сложно читать.Угу, спасибо. Над дизайном надо думать больше — это факт, + читать чужой хороший код.
Угу, спасибо. Про спрос — та я примерно понял примерно =). Сам просматриваю тоже. До этого все делал в Ubuntu+NetBeans+gcc. Подумал — нужно под Виндовс пробовать. Что у нас под Виндовс — Студия. Поставил, начал окучивать темку, и для себя понял(возможно не там искал, и не так понял), что MS будет двигать # или JS. А ++ отдаются энтузиастам. Хотя на tiobe c++ подрос, да и если верить githut у ++ не все печально. Такое.
Вопросы — засейвил, если вдруг будут приглашать, то буду дотягивать.
Если можно, дергну Вас еще двумя вопросами:
1. cpp-netlib. Именно он? Или можно что-то по уровню? Потому как я присмотрел себе уже =).
2. И, я понимаю что все оборачивают мысли в что-то мягкое, тут именно
и не оченьили правильно
и очень не?
И деньги — да без них плохо, понятно, что не дам себе утонуть, потому как, в первую очередь жена спросит: Где ВСЬО? =) , но пока попробую.
избавьтесь от привычки вставлять в код свою фамилию: вряд ли кто-то из заказчиков это поймет.Если Вы про namespace, то это я так себя мотивирую — победа лба нокаутом =) Шутко, я понял, придумаю что-то попастельней =).
Наташа, в любом случае, спасибо за идеи. Уже есть подсказки обратить внимание и и один намек =)
Выбрал ты неудачную тему.=)
DevOps — это админ, тесно интегрированный в процесс разработки?
На равне с умными указателями я б еще поставил стандартизованную поддержку тредов и, наверное, байнд.
Ключевое слово auto должно помочь. Оно избавляет от бойлерплета очень хорошо.class B{}; auto spB = std::make_shared<B>();