dstrings.end(). ostream_itera
Автор admin
Воскресенье, 7 июня 2009 11:32
dstrings.end(). ostream_iterator(tmp2. “\n”)); ticks = clockO – ticks: cout « “Iterating deque: ” « ticks « endl; } ///:- После всего, что говорилось о неэффективности включения элементов в вектор из-за перераспределения памяти, можно было бы ожидать радикальных различий между результатами двух тестов. Тем не менее, для текстового файла размером 1,7 Мбайт программа, созданная одним из компиляторов, выдала следующие результаты (не в секундах, а в тактах, зависящих от платформы и компилятора): Read into vector: 8350 Read into deque: 7690 Indexing vector: 2360 Indexing deque: 2480 Iterating vector: 2470 Iterating deque: 2410 Результаты для другого компилятора и платформы выглядели примерно также. Выходит, все не так уж плохо? Отсюда можно сделать несколько важных выводов. • Мы (программисты и авторы) не всегда точно представляем, какие именно компоненты наших программ работают недостаточно эффективно. • Эффективность определяется несколькими факторами. В нашем примере затраты на чтение строк и их преобразование к типу string могут существенно превосходить дополнительные затраты, связанные с неопти
Комментарии закрыты.
Последние комментарии