Форум сайта python.su
“У меня на Висте 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 мало кто слышал. Но тем не менее!!! Приходится постоянно переводить из одного интерфейса в другой. Ахтунг: бей своих, чтобы чужие боялись.
Офлайн
Андрей СветловДа знаю я. Просто весь Qt в сумме… Когда разные либы имеют, фактически, одну нотацию и документацию… Там и QXml удобным получается. За счёт однородности.
Поверьте, для “С_с_плюшками” тоже есть более приличные библиотеки сетевого взаимодействия.
Офлайн
Люблю “из кусочков”. Каждый выберу, исходя из своих нужд.
Хорошо, если эти части являются _расширениями_ стандарта - а не вариацией на тему “мы напишем все сами с нуля”.
Как еще не так давно каждый плюсовик писал свои строки и списки (да и сейчас иногда пишут, чего греха таить).
“Все уже есть” имеет обратную сторону - добавить другое нелегко.
Проповедник джанги Иван Сагалаев настолько хорошо знает ее внутренности, что способен обходить сложности и изобретать велосипед легко и непринужденно. У меня - иной путь.
Кстати, сегодня Гвидо заявил в python-sig: не будет рассматривать расширения языка до тех пор, пока не приведут в порядок стандартную библиотеку и не закончат миграцию на тройку.
Офлайн
u4upyAsusEEE PC 900 мгц проц., WinXP SP2, NTFS - 11 сек.. Вариант с “чистым” sqlite 0.2 сек (учитывая commit).
Сижу и любуюсь на 9.39100003242 секунд. 100 записей. 9 с лишним секунд.
Мы об одном же коде говорим?
Офлайн
Андрей СветловВот вот!.. К сожалению, слишком многие и на питоне умудряются свои стандарты придумывать.
Хорошо, если эти части являются _расширениями_ стандарта - а не вариацией на тему “мы напишем все сами с нуля”.
Андрей СветловДа. Но если всё сделать правильно, то получается вполне сносно.
“Все уже есть” имеет обратную сторону - добавить другое нелегко.
igor.kaistИ снова я развёл флейм… Ребят, убейте меня! Последние пол года, где бы я не появлялся, начинается дикий троллинг, флейм и оффтоп.
Этой теме место во флейме…
Офлайн
Ну да, транзакции. ))) Зря я так разволновался.
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()
Офлайн
Андрей СветловПотому что менее удобно, или сталкивались с какими-то проблемами?
С базами данных из Qt никогда не работал - не вижу смысла.
Офлайн
u4upyПотому что менее удобно.
Потому что менее удобно, или сталкивались с какими-то проблемами?
Офлайн