URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 57700
[ Назад ]

Исходное сообщение
"Реализация Sqlite на C#. Графический интерфейс для SQLite"

Отправлено opennews , 09-Авг-09 00:31 
Miguel de Icaza объявил (http://tirania.org/blog/archive/2009/Aug-06.html) о доступности варианта (http://code.google.com/p/csharp-sqlite/) библиотеки Sqlite, переписанной полностью на языке C#, что позволяет использовать данную БД в Silverlight приложениях или на ASP.NET серверах, работающих в режиме средней степени доверия. Тесты показали, что Sqlite на C# позволил выполнить 1.5 миллиона select и 300 тыс. insert операций в секунду, что примерно в 5 раз медленней оригинальной реализации на языке Си.

Кроме того, можно отметить, что Антон Васильев представил (http://antono.info/ru/163-graficheskiy-interfeys-dlya-sqlite) графический интерфейс для управления базами SQLite - sqlitegui (http://gitorious.org/ubuntu-on-rails/sqlitegui), созданный на базе заброшенного проекта rsqlitegui (http://rsqlitegui.rubyforge.org/).

URL: http://tirania.org/blog/archive/2009/Aug-06.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=22942


Содержание

Сообщения в этом обсуждении
"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 09-Авг-09 00:31 
О как замечательно! Буквально намедни на сон грядущий задумался, а есть ли биндинг sqlite для .NET... А тут такая замечательная новость :)

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено znnnna , 11-Авг-09 13:14 
http://www.radiopark.ru  



"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Knuckles , 09-Авг-09 02:18 
>что примерно в 5 раз медленней оригинальной реализации на языке Си

Что-то не пойму. Этому надо радоваться что ли? Нельзя было сделать биндинги к сишной библиотеке?


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 09-Авг-09 07:06 
тут ключевая фраза:
>что позволяет использовать данную БД в Silverlight приложениях или на ASP.NET серверах, работающих в режиме средней степени доверия.

есстествено, что споры о производительности (c# быстрее c и т.д.) забыты и тут не уместны. :-D

ps:
мне вот интересно, в новостях про моно специально не указывается лицензия подобных продуктов или тут не принято?


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Любо , 09-Авг-09 10:47 
>тут ключевая фраза:
>что позволяет использовать данную БД в Silverlight приложениях или на ASP.NET серверах, работающих в режиме средней степени доверия.

Т.е. я правильно понял, что подрубить нешарпованное ("в Silverlight приложениях или на ASP.NET серверах, работающих в режиме средней степени доверия") НЕЛЬЗЯ???


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 09-Авг-09 11:19 
фиг его знает что/кто у них там на доверии... я просто новость прочитал.

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 09-Авг-09 19:23 
Полно Вам! Кому интересно - сходит по ссылки и сам убедится, что лицензия _действительно_ свободная :)

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 09-Авг-09 22:08 
>Полно Вам! Кому интересно - сходит по ссылки и сам убедится, что
>лицензия _действительно_ свободная :)

э нет. порядок должен быть.
во всех новостях пишут, а тут "Полно Вам!".


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 10-Авг-09 00:19 
>>Полно Вам! Кому интересно - сходит по ссылки и сам убедится, что
>>лицензия _действительно_ свободная :)
>
>э нет. порядок должен быть.
>во всех новостях пишут, а тут "Полно Вам!".

Стоит ли на такой фигне заморачиваться?


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 10-Авг-09 01:11 
>>>Полно Вам! Кому интересно - сходит по ссылки и сам убедится, что
>>>лицензия _действительно_ свободная :)
>>
>>э нет. порядок должен быть.
>>во всех новостях пишут, а тут "Полно Вам!".
>
>Стоит ли на такой фигне заморачиваться?

на опеннет? думаю да.
вот был бы мононет... другое дело


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 09-Авг-09 14:37 
>>что примерно в 5 раз медленней оригинальной реализации на языке Си
>
>Что-то не пойму. Этому надо радоваться что ли? Нельзя было сделать биндинги
>к сишной библиотеке?

Нет конечно. Сишную библиотеку низя подписывать цифровой подписью. clr библиотеку можно.


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено User294 , 10-Авг-09 00:00 
Ах вот оно что.Свобода, значит... а рут ауторити подписывающая сертификаты аффтарам там случайно не MS?А то с драйверами вон так сделали - в итоге если MS не нравится некий драйвер, им говно вопрос его выпилить и запретить.И ничего с этим не поделаешь - в иерархии сертификатов они сверху.

И, кстати, нативные дллы подписанные подписями я своими глазами видел. Что за пиндеж что их нельзя подписывать?


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 17-Авг-09 14:43 
При чем здесь свобода. Вы будете грузить себе на компьютер неподписанный код с какого-либо сайта? Я лично нет. При чем здесь MS, когда подписывает Verisign, и MS здесь никаким боком не стояло. И как вы представляете себе запуск нативной dll на power pc?

А, дайте догадаюсь, это у вас личная фанатичная неприязнь к ms, да такая что вы тратите свое личное время чтобы пукать на форума. ну ну.


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Дмитрий Ю. Карпов , 09-Авг-09 11:10 
> Sqlite на C# ... примерно в 5 раз медленней оригинальной реализации на языке Си.

Я догадывался, что C# хуже, чем Си; но никогда не думал, что настолько хуже. Интересно, почему это? Связано ли это с компилянием в псевдо-ассемблер?


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 09-Авг-09 14:37 
Нет, это связано с тем что возраст этой библиотеки еще пеленочный. За пару лет производительность подтянут. Как подтянут и jit :)

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Alexey , 09-Авг-09 16:29 
Странно, это уже 3 по счету библиотека, которая мне встречалась, переписанная с C на C#, но при этом у всех разница с исходной реализацией в 3-5 раз. Так что думаю скорость принципиально не улучшится.

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено User294 , 10-Авг-09 00:06 
>Так что думаю скорость принципиально не улучшится.

Логично.А вы думали что не-нативный код и куча параноидальных проверок - нахаляву?Вот воткнут при генережке кода вагон параноидальных проверок в глубоком цикле.И тормознется он раз в пять.Потому что большую часть цикла составят проверки.А то что данные можно было заранее проверить и в цикле это не гонять - такие среды разумеется не знают.В сях это может знать програмер но в моно\яве и подобных VM средах считается что програмер - дебил и от него надо защищаться.С ножом к горлу по возможности.Вообще, некоторые очень любят наносить пользу и причинять добро...


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Karbofos , 11-Авг-09 14:27 
самое интересное, что .NET или Java программеры умалчивают, или просто не знают, на каких концептах базируются эти языки/платформы программирования, из-за чего программы только теоретически, или в инкубаторских условиях могут по скорости выполнения приближаться к Си и плюсам. в реальной жизни - сливают по полной программе.

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено User294 , 12-Авг-09 19:48 
> умалчивают, или просто не знают, на каких концептах базируются эти
> языки/платформы программирования,

Скорее второе.Достаточно посмотреть на тех кто на этом пишет...


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено ONIX , 09-Авг-09 19:26 
Конечно медленнее, если в С# даже базовые типы (int/float и тп) выступают классами то что говорить о более громоздких вещах... А реализация работы со строками на мой взгляд ужасна (класс String), при изменении одного символа в объекте происходит переразпредиление памяти (создается новая строка, а старая удаляется). ИМХО, слишком уж избыточный язык... Хотели сделать язык без Сишных костылей, а добавили новых =).

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 09-Авг-09 20:57 
> Конечно медленнее, если в С# даже базовые типы (int/float и тп) выступают классами

Ну и в каком месте они классы? Формально - это структуры в терминах дотнета, отличие их от классов (опять же, в терминах дотнета) в том, что последнии как правило создаются в куче, в то время как структуры выделяются на стеке. То, что они инкапсулируют некоторые методы - воспринимайте как конструкцию языка, в остальном это типичные базовые типы, от которых нельзя даже унаследовать свой собственный. Это ограничение сделано как раз по ссображениям производительности.


> А реализация работы со строками на мой взгляд ужасна (класс String), при изменении одного символа в объекте происходит переразпредиление памяти (создается новая строка, а старая удаляется).

Опять глупости вследствие Вашей безграмотности. Когда нужна эффективная работа со строками - используют StringBuilder. Совершенно нормальный подход для скриптового языков.


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 09-Авг-09 22:10 
>Ну и в каком месте они классы? Формально - это структуры в терминах дотнета

а чем структура от класса отличается?


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено ONIX , 09-Авг-09 23:20 
В структуре свойства и методы по умолчанию со спецификатором public, а в классе privat. Но в шарпе это их не единственное отличие... С C# знаком не долго (3-4 мес.), но после С/С++ на нем писать очень не приятно)))) (Возможно дело привычки)

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 10-Авг-09 00:17 
>В структуре свойства и методы по умолчанию со спецификатором public

эти детали не влиябт на размер в памяти... ну и скорость работы соотвественно


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 09-Авг-09 23:20 
Говорю же, структура создается на стеке. (Хм... интересно, а Nullable-структуры тоже создаются на стеке) Класс имеет ссылочный тип и создается в куче.

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 10-Авг-09 00:18 
>Говорю же, структура создается на стеке. (Хм... интересно, а Nullable-структуры тоже создаются на стеке) Класс имеет ссылочный тип и создается в куче.

правда что ли?
какой ужас.


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 10-Авг-09 01:09 
>правда что ли?
>какой ужас.

Не пойму Вас, а что ужасного?


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 10-Авг-09 01:17 
>>правда что ли?
>>какой ужас.
>
>Не пойму Вас, а что ужасного?

пруфлинк на то, что структуры создаются в стеке можно?


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 10-Авг-09 01:55 
>пруфлинк на то, что структуры создаются в стеке можно?

Jeffrey Richter. "CLR via C#, Second Edition"
Primitive, Reference, and Value Types -> Reference Types and Value Types



"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 10-Авг-09 02:19 
>>пруфлинк на то, что структуры создаются в стеке можно?
>
>Jeffrey Richter. "CLR via C#, Second Edition"
>Primitive, Reference, and Value Types -> Reference Types and Value Types

предлагаете преобрести по сходной цене? :-D

так не серьёзно! тем более поговаривают, что и доки для платформы отличные и т.д.
Вы бы ссылочку что ли кинули, где написано, что структуры создаются в стеке....


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 10-Авг-09 03:18 
а. сам нашёл. http://gazette.linux.ru.net/lg85/ortiz.html
действительно ужас. видимо предполагается, что структуры имеют малые размеры, не содержат сложные типы данных и т.д.
а вот тут http://simple-cs.ru/store/csharp/4/ :
>С# также подразделяет типы на две другие категории: размерные и ссылочные. Основное различие между ними — это способ, которым их значения сохраняются в памяти. Размерные типы сохраняют свое фактическое значение в стеке. Ссылочные типы хранят в стеке лишь адрес объекта, а сам объект сохраняется в куче. Куча — основная память программ, доступ к которой осуществляется на много медленнее чем к стеку. Если вы работаете с очень большими объектами, то сохранение их в куче имеет много преимуществ.

вообще непонятно с чего бы доступ к куче был на много медленнее.
в любом случае, все переменные так или иначе - динамические.


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 10-Авг-09 03:37 
>вообще непонятно с чего бы доступ к куче был на много медленнее.

Дело в том, что куча непростая, а "управляемая". Я даже боюсь представить, чего только на нее понавешано...

>в любом случае, все переменные так или иначе - динамические.

Что Вы понимаете под словом "динамические"?


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Аноним , 10-Авг-09 03:44 
>действительно ужас.  

Но я так и не понял, что в этом ужасного? Никого ведь не смущает что в Си структуры тоже создается на стеке. Да и в Плюсах далеко не всегда память для объектов выделяют на куче - new тот еще тормоз.



"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 10-Авг-09 12:30 
видимо то, что в таких услових отставание в 5 раз - не так много.

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено User294 , 13-Авг-09 14:27 
Ужасно имхо то что сишный компилер может дли int тупо выделить регистры проца, если они есть.Разницу в скорости работы представляете?И кстати, если забить на древнее говно х86, где регистров кот наплакал, у более нормальных процов(х64, арм, мипс, ...) регистров много.И при таких условиях дотнет пожалуй еще и не во столько раз сольет.

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Aesthetus Animus , 14-Авг-09 22:22 
>Ужасно имхо то что сишный компилер может дли int тупо выделить регистры
>проца, если они есть.Разницу в скорости работы представляете?

Работу JIT-компилятора хорошо представляете? Если нет - то не надо делать предварительные выводы о том, что куда помешает. В целом, C# вполне пристойный скриптовый язык.



"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено andr.mobi , 17-Сен-09 14:53 
> Я догадывался, что C# хуже, чем Си; но никогда не думал, что настолько хуже. Интересно, почему это? Связано ли это с компилянием в псевдо-ассемблер?

Однозначно. плюс ещё "инженеры", какие они у майкрософта? (бу-га-га) Очень просто можно сравнить: пишешь цикл в 10 тыс. printf на Сях и например на перле. time вам всё покажет. Это при том, что перловый printf ничего особо не делает - прямо вызывает одноимённую Сишную функцию.

Даже мегаоптимальная реализация виртуальной машины Inferno Dis от создателей UNIX работает примерно на 30% медленнее нативного Си по их собственной оценке. Подобное отставание, кстати, было и у первого Си от ассемблерного кода, что бурно обсуждалось в начале 70-х. У ядра ОС на Си было много противников, машины то были медленные. А сейчас Линус против микроядерности, хотя плата за неё (написаную сопливыми студентами) не превышает 10%, что является очевидной (и очередной) глупостью этого попсового идола молодёжи.

Ну а 30% - это небольшая плата за 100% переносимость исполняемого кода в распределённой системе. А в 5 раз - это ни в какие ворота не лезет. Завязывайте народ работать на маздайных технологиях - пусть они маздай.


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 09-Авг-09 11:23 
>Антон Васильев представил графический интерфейс для управления базами SQLite - sqlitegui

а под 64 бита сборки нету.
зы:
а вообще бы новость отдельно надо. ну никаким боком к моно, а скажут ... а скажут что их было четверо. :-D


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено User294 , 10-Авг-09 00:13 
>а вообще бы новость отдельно надо.

+1. SQLite мне интересен, я его использую, так что гуй для него тоже потенциально полезная мне приблуда.А вот дотнеты и ASP я бы хотел видеть только в страшных снах - на кой перец валить все в одну кучу?...


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено mma , 09-Авг-09 13:39 
есть же sqlite manager  в виде дополнения к фаерфоксу. Пока лучше графический интерфейсов не придумали

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено User294 , 10-Авг-09 00:11 
>есть же sqlite manager  в виде дополнения к фаерфоксу. Пока лучше
>графический интерфейсов не придумали

Есть вагон графических интерфейсов к sqlite.Достаточно у пакетного манагера спросить... :)


"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Vital , 09-Авг-09 17:16 
а разве при инсертах основные издержки будут не на дисковых операциях? О_О

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено vitek , 10-Авг-09 02:22 
а Вы думаете данные пишутся на диск в синхронном режиме?
да и по статистике 95% всего, что происходит с субд - это селекты. даже в oltp.

"Реализация Sqlite на C#. Графический интерфейс для SQLite"
Отправлено Юниксоид , 09-Авг-09 20:32 
Раньше я думал, что фраза "переписать под моно" - это шутка. Оказывается, это суровая реальность.