Hello! On Thursday 21 January 2010 23:40:46 Aleksey Cheusov wrote: > > Hello! > > > On Thursday 21 January 2010 15:22:51 Ed wrote: > >> > Спасибо, работает. Впрочем, оно неинтересно, так как это не нативный > >> > интерфейс к SQLite. > >> > >> что значит "нативный" в этом контексте? > > > Враппер для функций SQLite, а не реализация чего-то вроде ODBC. > > Есть основания считать, что "обертки" вроде DBI работают сильно > медленнее нативной библиотеки? Насколько? Есть цифры? Может, гибкость в > выборе базы данных того стоит?
Какая гибкость - вы знаете другую SQL СУБД, способную выполнить миллион селектов в минуту? Обертки не поддерживают особенностей каждой СУБД, ради которых и стоит ее выбирать. И таки да, на определенных задачах быстродействие врапперов неприемлемо. > Если производительность твоего приложения зависит от скорости ЗАПУСКА > чего-то внешнего, и это внешнее запускается десятки тысяч раз, значит ты > делаешь что-то не так. Меняй парадигму. Я правильно понимаю вашу логику: скорость работы юникса зависит от скорости запуска шелла, значит, надо отказаться от юникса? А вот в дебиане почему-то решили просто шелл сменить на более быстрый (bash на dash). К примеру, когда время выполнения задачи составляет порядка 10 мс, потратить 1 мс на запуск считаю вполне допустимым, если это на порядок уменьшает сложность системы (зачастую удобнее разрабатывать, тестировать и поддерживать десяток независимых дополнительных утилит, нежели дополнительных библиотек). В частности, смотрите дизайн qmail - как пишет DJB, он не видел еще ни одной системы, где проблемой бы являлись именно накладные расходы на запуск компонентов. Вот, скажем, утилита полнотекстового поиска по проиндексированным документам: $ time poisk-query /mnt/backup/project/offline1/res/dataset/share.db 1 0 "" абонент counter = 1 from 821 docid = 2 mtime = 2009-08-20 size = 30085 uri = /share/smspomosh.html snippet = <b>...</b> ��────────┘Если <b>абонент</b> отправляет сообщение с <b>...</b> rang = 0 mimetype = text/html title = SMS-помощник real 0m0.028s user 0m0.024s sys 0m0.008s $ time poisk-query /mnt/backup/project/offline1/res/dataset/share.db >/dev/null 2>&1 real 0m0.007s user 0m0.004s sys 0m0.000s Это результаты на ноуте с частотой 800МГц. Прекрасно себе живет в виде отдельной утилиты и быстро встраивается в любую систему. А так же вызывается интерактивно, грепается и т.п. > > миллисекунд), этому требованию луа удовлетворяет. Но синтаксис... > hint: luac Гляну. Стандартный интерпретатор луа в сишную программу я попробовал встроить, не впечатлило. Best regards, Alexey Pechnikov. http://pechnikov.tel/