http://easy-coding.blogspot.com/2009/02/stl.html
Любопытно скорость чтения последними двумя способами:
TEST(ReaderTest, istreambuf_iterator_tostring_short) {
std::string v(
(std::istreambuf_iterator<char>(
std::ifstream(Env::testfile())
)),
std::istreambuf_iterator<char>()
);
EXPECT_EQ(Env::testfile_sz(), v.length());
}
TEST(ReaderTest, istreambuf_iterator_tostring_short_auto_ptr) {
std::string v(
(std::istreambuf_iterator<char>(
*(std::auto_ptr<std::ifstream>(
new std::ifstream(Env::testfile())
)).get()
)),
std::istreambuf_iterator<char>()
);
EXPECT_EQ(Env::testfile_sz(), v.length());
}
Colored with dumpz.org
Если в VS2005 запускать без оптимизации, то каждый из этих двух тестов выполняется за 125 мс, а с оптимизацией - за 31 мс. То есть имеем четырехкратный прирост производительности.
Комментариев нет:
Отправить комментарий