[Gelistirici] Eğlencelik
Faik Uygur
faik at pardus.org.tr
27 Eki 2007 Cmt 21:40:34 EEST
Değerlere yaklaşmak için biraz cache'inizi ısıtın... :)
In [1]: import pisi
In [2]: installdb = pisi.db.installdb.InstallDB()
In [3]: packagedb = pisi.db.packagedb.PackageDB()
In [4]: def search_timer(db, terms):
...: import time
...: a = time.time()
...: print db.search_package(terms)
...: print time.time() - a
...:
In [5]: search_timer(installdb, ["xml", "parser"])
['XML-DOM', 'XML-Parser', 'piksemel', 'iksemel', 'libxml2', 'libxml-perl']
0.672440052032
In [6]: search_timer(packagedb, ["xml", "parser"])
['XML-DOM', 'libxmlpp', 'XML-Parser', 'xerces-c', 'libxml-perl', 'beautifulsoup', 'piksemel', 'XML-SAX-Writer', 'iksemel', 'libxmlpp2', 'libxml2', 'XML-SAX', 'beautifulsoup', 'PEAR-XML_RSS', 'PEAR-XML_Parser']
1.6654419899
-------------------------
apt-cache search'ün neden hızlı çalıştığını merak ederdim, koduna baktım.
Index dosyası üzerinden read edip regex ile parse ediyor sadece. Script ekte.
Buyrunuz:
faik at windu ~ $ time ./pisi-cache.py xml parser
libxslt - XSLT kütüphane ve araçları
docbook-xml4_1_2 - XML için Docbook DTD
apr-util1 - Apache çalışma ortamı araçları
XML-NamespaceSupport - İngiliz İngilizcesi KDE uluslararasılaştırma paketi
[...]
openoffice - OpenOffice.org Türkçe ofis yazılımı
nvu - Linux için dreamweaver'e benzeyen bir web editörü
XML-SAX - Oluşan bellek hatalarının kullanıcı kipinde işlenmesini sağlayan bir
kütüphane
libksba - Çeşitli uygulamaların X.509 sertifikaları ve CMS verilerine kolay
erişebilmesini sağlar
real 0m0.654s
user 0m0.606s
sys 0m0.047s
Tabi orada 20K paket ile nasıl yine de hızlı: Bir seferde tüm paketleri
bulmuyorda buldukça yazdırıyor. Tepki süresi hızlı görünüyor. Index
dosyamızın xml olması ve bundan kaynaklı büyüklüğü dezavantajı
oluyor tabi. Ama bu artılarının yanında hiç bir şey.
Şu anki api search bundan biraz yavaş fakat hızı çok kötü değil, kodu da temiz
ve az. Ayrıca yukardaki testde contrib ve pardus depolarında arıyor.
pisi-cache scripti sadece pardus deposunda.
pisi-cli search yavaşlığı daha çok başındaki db initialize'dan ve tüm
paketleri bulduktan sonra bastırdığımızdan kaynaklı.
installdb.search_package da beklediğimden çok hızlı çıktı :)
Öyle bir şeyler...
- Faik
-------------- sonraki bölüm --------------
A non-text attachment was scrubbed...
Name: pisi-cache.py
Type: application/x-python
Size: 662 bytes
Desc: kullanılamıyor
URL: <http://liste.pardus.org.tr/gelistirici/attachments/20071027/8ff43fd1/attachment-0002.bin>
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi