История изменений
Исправление kawaii_neko, (текущая версия) :
Это, наверное, происходит... да, на аллокаторе, который не знает о нитях?
ptmalloc знает, но во-первых, начиная с некоторого момента, арен перестает хватать и несколько потоков начинают «сидеть» на одной арене (не уверен насчет fastbin-ов).
Во-вторых, операция выделения памяти хоть и быстрая, но не мгновенная.
В-третьих, std::string(argv[i]) == "somestr"
даже длиннее, чем strcmp(argv[i], "somestr") == 0
и делает больше ненужных действий!
В-четвертых, тот товарищ кастовал argv[i]
к std::string
трижды внутри одного цикла.
В сухом остатке: зачем давать такие вредные советы новичку?
Исходная версия kawaii_neko, :
Это, наверное, происходит... да, на аллокаторе, который не знает о нитях?
ptmalloc знает, но во-первых, начиная с некоторого момента, арен перестает хватать и несколько потоков начинают «сидеть» на одной арене (не уверен насчет fastbin-ов).
Во-вторых, операция выделения памяти хоть и быстрая, но не мгновенная.
В-третьих, std::string(argv[i]) == "somestr"
даже длиннее, чем strcmp(argv[i], "somestr") == 0
и делает больше ненужных действий!
В-четвертых, тот товарищ кастовал argv к std::string трижды внутри одного цикла.
В сухом остатке: зачем давать такие вредные советы новичку?