пятница, 7 августа 2009 г.

[comp.flame] Маразм крепчал: производительность получилась несколько более низкой

Зашел сегодня на linux.org.ru, увидел новость о переписывании кода SQLite на C#/Mono. Прочитал и охуеофигел:

Noah Hart осуществил порт Sqlite на C# путем переписывания оригинальной библиотеки строчка за строчкой. При этом производительность получилась несколько более низкой, чем у оригинального кода - порт примерно в 5 раз медленнее (это означает, что он способен обработать примерно 1.5 миллионов операций типа SELECT или 300 000 операций типа INSERT за секунду - очень достойные результаты).

Блин, хочу жить в мире, где пятикратные тормоза называются “несколько более низкой” производительностью! Может для этого достаточно стать C#/Mono программистом? Тогда все заботы по написанию производительного кода, по профилированию и оптимизации программ уйдут сами собой. Будет всего лишь несколько более низкая производительность и все. Лепота!!!

Справедливости ради нужно сказать, что такой перл выдал переводчик новости. Поскольку в оригинальном варианте от Мигеля де Иказы говорится более спокойно:

The frequently asked questions on the web site talks about performance (it is about 5 times slower than native code, but still, it can do 1.5 million selects per second, 300k inserts per second).

Т.е. да, производительность сосет по полной, но тем не менее 1.5M select-ов и 300k insert-ов в секунду могёт.

PS. Кстати интересно, на каких-таких insert-ах SQLite показывает 300k/sec? Я год назад запарился на SQLite делать поддержку 20K транзакций в секунду, поскольку как только в SQLite появляется транзакция, то производительность падает на порядки. Пришлось объединять сотни вставок в большие транзакции, чтобы минимизировать их количество. Или же они считают количество insert-ов в одной транзакции? Или вообще в одной транзакции зафиксировали 10K записей, экстраполировали результат и получили 300k?

Отправить комментарий