Найти - Пользователи
Полная версия: SQLite на Windows
Начало » Python для новичков » SQLite на Windows
1 2 3
u4upy
“У меня на Висте SP1, NTFS ваш код занимал полсекунды-секунду.”

Это очень, очень странно.
WindowsSP3 (и NTFS, надо же) 2GB AMD4400+
Сижу и любуюсь на 9.39100003242 секунд. 100 записей. 9 с лишним секунд.
Мы об одном же коде говорим?
Андрей Светлов
u4upyПример кода - ваш. Без изменений.
Мой лаптоп несколько побыстрее будет - но не в десять же раз!
Винда, повторяюсь - Windows Vista SP1. А не Windows XP SP3. Это все же несколько отличающиеся операционные системы.

Да, кстати. Глянул в исходники PyQt 4.4 (она старовата - зато уже стоит на моей машине). sqlite в наличии версий 1 и 2. В то время как в стандартном питоне - 3.
Может быть, в этом кроется причина таких диких тормозов? Хотя бы отчасти.
Андрей Светлов
ZZZ
Поверьте, для “С_с_плюшками” тоже есть более приличные библиотеки сетевого взаимодействия. Притом - кроссплатформенные. Тот же boost::asio - красавец!!!
И еще более, чем на питоне - доставляет наличие “самопального” контейнера для всего, начиная с QString. Я понимаю, что начинали ребята тогда, когда о Степановском stl мало кто слышал. Но тем не менее!!! Приходится постоянно переводить из одного интерфейса в другой. Ахтунг: бей своих, чтобы чужие боялись.
ZZZ
Андрей Светлов
Поверьте, для “С_с_плюшками” тоже есть более приличные библиотеки сетевого взаимодействия.
Да знаю я. Просто весь Qt в сумме… Когда разные либы имеют, фактически, одну нотацию и документацию… Там и QXml удобным получается. За счёт однородности.
Согласись, что в большинстве случаев набора чистого Qt хватает. Там есть почти всё, что нужно для написания обычных пользовательских программ. :-)
Это как спор: Django vs Pylons. Единое целое или куча разрозненных кусочков. Что лучше? Каждый выбирает сам.
Андрей Светлов
Люблю “из кусочков”. Каждый выберу, исходя из своих нужд.
Хорошо, если эти части являются _расширениями_ стандарта - а не вариацией на тему “мы напишем все сами с нуля”.
Как еще не так давно каждый плюсовик писал свои строки и списки (да и сейчас иногда пишут, чего греха таить).
“Все уже есть” имеет обратную сторону - добавить другое нелегко.
Проповедник джанги Иван Сагалаев настолько хорошо знает ее внутренности, что способен обходить сложности и изобретать велосипед легко и непринужденно. У меня - иной путь.

Кстати, сегодня Гвидо заявил в python-sig: не будет рассматривать расширения языка до тех пор, пока не приведут в порядок стандартную библиотеку и не закончат миграцию на тройку.
igor.kaist
u4upy
Сижу и любуюсь на 9.39100003242 секунд. 100 записей. 9 с лишним секунд.
Мы об одном же коде говорим?
AsusEEE PC 900 мгц проц., WinXP SP2, NTFS - 11 сек.. Вариант с “чистым” sqlite 0.2 сек (учитывая commit).
Когда я уже домой, я могу выбрать два пути. По одному из них постоянные пробки. Но зачем выбирать выбирать маршрут с пробками, ругаясь потом на неспособность властей привести дорожную обстановку в городе.
Этой теме место во флейме…
ZZZ
Андрей Светлов
Хорошо, если эти части являются _расширениями_ стандарта - а не вариацией на тему “мы напишем все сами с нуля”.
Вот вот!.. К сожалению, слишком многие и на питоне умудряются свои стандарты придумывать.
Я сам больше люблю, когда каждая часть вылизана отдельно (как Gentoo, например :-)), но всё-таки работать удобнее в целостной системе с устоявшемся окружением и типизированными интерфейсами (я про MacOS X, к слову :-)).

Андрей Светлов
“Все уже есть” имеет обратную сторону - добавить другое нелегко.
Да. Но если всё сделать правильно, то получается вполне сносно.
Вот мне вспомнился пример с libtorrent – я просто написал обёртку из нескольких классов, чтобы предать всему этому делу qt'шный стиль.

igor.kaist
Этой теме место во флейме…
И снова я развёл флейм… Ребят, убейте меня! Последние пол года, где бы я не появлялся, начинается дикий троллинг, флейм и оффтоп.
Вот вчера вечером сидело четыре вахоё… вахофила (warhammer) и обсуждали своих е… любимых человечиков… А закончилось всё это тем, что пришёл я и разговор переключился на спор о том, где приятнее пить пиво (“Mollis Irish Pub” vs “Foggy Dew” (на Восстания)) и какая RDBMS лучше (Посгри vs Мускл (Оракл все споров)).
u4upy
Ну да, транзакции. ))) Зря я так разволновался.

import os
import time
import sys
import sqlite3
from PyQt4.QtSql import *
from PyQt4.QtGui import *

filename = "db.db"
if os.path.exists(filename):
os.unlink(filename)

app = QApplication(sys.argv)
db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName(filename)
db.open()

q = QSqlQuery()

q.exec_("""CREATE TABLE test (number INTEGER NOT NULL)""")

t = time.time()
db.transaction()#!
for i in xrange(10000):
q.exec_("INSERT INTO test (number) VALUES ('%s')" % i)
db.commit()
print time.time() - t

q.clear()
db.close()

#-----------------------------

os.unlink(filename)

conn = sqlite3.connect(filename)
conn.execute('''create table test (number int)''')
conn.commit()

c = conn.cursor()

t = time.time()
for i in xrange(10000):
c.execute('insert into test (number) values (%s)' % i)
conn.commit()
print time.time() - t

conn.close()
>>>
0.344000101089
0.266000032425
>>>

Все таки PyQt немножко медленней. Книжку снова читаю, радуюсь. Всем спасибо.
u4upy
Андрей Светлов
С базами данных из Qt никогда не работал - не вижу смысла.
Потому что менее удобно, или сталкивались с какими-то проблемами?
ZZZ
u4upy
Потому что менее удобно, или сталкивались с какими-то проблемами?
Потому что менее удобно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB