sayounara

This commit is contained in:
Faik Uygur
2007-04-26 13:28:56 +00:00
parent f2fa5246ea
commit d6451a5033
2 changed files with 0 additions and 387 deletions
-282
View File
@@ -1,282 +0,0 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# Copyright (C) 2006, TUBITAK/UEKAE
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# Please read the COPYING file.
import os
import sys
import exceptions
import pisi
import pisi.testdb
import time
def handle_exception(exception, value, tb):
print exception, value, tb
if exception == exceptions.KeyboardInterrupt:
pisi.api.finalize()
print("\n")
sys.exit()
def testPickle(iter):
import cPickle
pisi.api.init(write=True)
packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all)
packages = {}
totalPack = len(packageNames)
for name in packageNames:
packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all)
start = time.clock()
for i in range(iter):
size = 0;
for pak in packages:
pickled = cPickle.dumps(packages[pak],1)
size += len(pickled)
#pisi.context.packagedb.add_package2(pak, pisi.db.itembyrepodb.installed)
#print pak.source.name, pak.installedSize
end = time.clock()
delta = (end - start)
print("Total Packages: %s" % totalPack)
print("Total Size: %s, Average Size: %s" % (size, size / totalPack))
print("Iterations: %s Total time: %ss. Average time :%ss." % (iter, delta , delta/iter) )
pisi.api.finalize()
def testUnPickle(iter):
import cPickle
pisi.api.init(write=True)
packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all)
packages = {}
pickles = {}
totalPack = len(packageNames)
for name in packageNames:
packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all)
size = 0;
for pak in packages:
pickled = cPickle.dumps(packages[pak],1)
pickles[pak] = pickled
start = time.clock()
for i in range(iter):
for name in pickles:
package = cPickle.loads(pickles[name])
end = time.clock()
delta = (end - start)
print("Total Packages: %s" % totalPack)
print("Iterations: %s Total time: %ss. Average time :%ss." % (iter, delta , delta/iter) )
pisi.api.finalize()
def testDatabaseSingleTransaction():
import cPickle
import pisi.context as ctx
import bsddb3.db as bsd
from pisi.db.itembyrepodb import ItemByRepoDB
pisi.api.init(write=True)
packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all)
packages = {}
totalPack = len(packageNames)
try:
os.unlink("/var/db/pisi/package_perf.bdb")
os.unlink("/var/db/pisi/package_perf.bdb.lock")
except:
pass
db = ItemByRepoDB('package_perf')
for name in packageNames:
packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all)
start = time.time()
txn = ctx.dbenv.txn_begin()
for pak in packages:
db.add_item(pak, packages[pak], pisi.db.itembyrepodb.installed, txn)
txn.commit()
end = time.time()
delta = (end - start)
print("Total Packages: %s" % totalPack)
print("Total time: %.2f" % (delta) )
db.close();
pisi.api.finalize()
def testDatabaseFullTransaction():
import cPickle
import pisi.context as ctx
import bsddb3.db as bsd
from pisi.db.itembyrepodb import ItemByRepoDB
pisi.api.init(write=True)
packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all)
packages = {}
totalPack = len(packageNames)
try:
os.unlink("/var/db/pisi/package_perf.bdb")
os.unlink("/var/db/pisi/package_perf.bdb.lock")
except:
pass
db = ItemByRepoDB('package_perf')
for name in packageNames:
packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all)
start = time.time()
for pak in packages:
txn = ctx.dbenv.txn_begin()
db.add_item(pak, packages[pak], pisi.db.itembyrepodb.installed, txn)
txn.commit()
#ctx.txn_proc(addAllPacks, None)
end = time.time()
delta = (end - start)
print("Total Packages: %s" % totalPack)
print("Total time: %.2f" % (delta) )
db.close();
pisi.api.finalize()
def testDatabaseRead(iter):
import cPickle
import pisi.context as ctx
import bsddb3.db as bsd
from pisi.db.itembyrepodb import ItemByRepoDB
pisi.api.init(write=True)
packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all)
packages = {}
totalPack = len(packageNames)
for name in packageNames:
packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all)
try:
os.unlink("/var/db/pisi/package_perf.bdb")
os.unlink("/var/db/pisi/package_perf.bdb.lock")
except:
pass
db = ItemByRepoDB('package_perf')
count = 0;
txn = ctx.dbenv.txn_begin()
for pak in packages:
db.add_item(pak, packages[pak], pisi.db.itembyrepodb.installed, txn)
count += 1
txn.commit()
print ( "%s packages written" % count)
start = time.time()
for i in range(iter):
for name in packageNames:
package = db.get_item(name, pisi.db.itembyrepodb.all, txn)
end = time.time()
delta = (end - start)
print("Total Packages: %s" % totalPack)
print("%s iters, Total time: %.2fs., average Time: %.2fs." % (iter, delta, delta/iter) )
db.close();
pisi.api.finalize()
def cleanDB():
try:
os.unlink("/var/db/pisi/package_perf.bdb")
os.unlink("/var/db/pisi/package_perf.bdb.lock")
os.unlink("/var/db/pisi/package_perf_info.bdb")
os.unlink("/var/db/pisi/package_perf_info.lock")
os.unlink("/var/db/pisi/package_perf_history.bdb")
os.unlink("/var/db/pisi/package_perf_history.bdb.lock")
except:
pass
def testDatabaseSingleTransaction2(iter):
import cPickle
import pisi.context as ctx
import bsddb3.db as bsd
from pisi.db.itembyrepodb import ItemByRepoDB
cleanDB()
pisi.api.init(write=True)
packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all)
packages = {}
totalPack = len(packageNames)
dbPack = ItemByRepoDB('package_perf')
#dbInfo = ItemByRepoDB('package_perf_info')
dbHistory = ItemByRepoDB('package_perf_history')
for name in packageNames:
packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all)
print "Write test.."
start = time.time()
txn = ctx.dbenv.txn_begin()
for pak in packages:
packageDAO = pisi.testdb.PackageDAO(packages[pak])
#packageInfoDAO = pisi.testdb.PackageInfoDAO(packages[pak])
dbPack.add_item(pak, packageDAO, pisi.db.itembyrepodb.installed, txn)
#dbInfo.add_item(pak, packageInfoDAO, pisi.db.itembyrepodb.installed, txn)
dbHistory.add_item(pak, packages[pak].history, pisi.db.itembyrepodb.installed, txn)
txn.commit()
end = time.time()
delta = (end - start)
print("Total time: %.2f" % (delta) )
txn = ctx.dbenv.txn_begin()
print "read test. Read only package bodies"
start = time.time()
for i in range(iter):
for name in packageNames:
packageDAO = dbPack.get_item(name, pisi.db.itembyrepodb.all, txn)
end = time.time()
txn.commit()
delta = (end - start)
print("%s iters, Total time: %.2fs., average Time: %.2fs." % (iter, delta, delta/iter) )
txn = ctx.dbenv.txn_begin()
print "read test. Read only histories"
start = time.time()
for i in range(iter):
for name in packageNames:
hist = dbHistory.get_item(name, pisi.db.itembyrepodb.all, txn)
end = time.time()
txn.commit()
delta = (end - start)
print("%s iters, Total time: %.2fs., average Time: %.2fs." % (iter, delta, delta/iter) )
dbPack.close()
#dbInfo.close()
dbHistory.close()
pisi.api.finalize()
if __name__ == "__main__":
sys.excepthook = handle_exception
#testDatabaseRead(10)
testDatabaseSingleTransaction2(20)
-105
View File
@@ -1,105 +0,0 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2005 - 2007, TUBITAK/UEKAE
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# Please read the COPYING file.
#
import os
import fcntl
import types
import gettext
__trans = gettext.translation('pisi', fallback=True)
_ = __trans.ugettext
import pisi
import pisi.util as util
import pisi.context as ctx
import pisi.db.itembyrepodb as itembyrepodb
import pisi.metadata
class TestDB:
def __init__(self):
self.db = itembyrepodb.ItemByRepoDB("packages2")
def addPackage(self):
a = "Hello World"
self.db.add_item("hello", a, itembyrepodb.installed)
def getPackage(self, name):
return self.db.get_item(name, itembyrepodb.installed)
def addAllPackages(self):
pisi.api.init(write=True)
packages = pisi.context.installdb.list_installed()
for name in packages:
pak = pisi.context.packagedb.get_package(name, itembyrepodb.installed)
#pisi.context.packagedb.add_package(pak, itembyrepodb.installed)
#print pak.source.name, pak.installedSize
pisi.api.finalize()
if __name__ == "__main__":
t = testdb.TestDB()
t.addAllPackages()
class PackageInfoDAO:
def __init__(self, package):
"""
package : pisi.metadata.Package
"""
self.summary = package.summary
self.description = package.description
class PackageDAO:
def __init__(self, package):
"""
package : pisi.metadata.Package
"""
#
#from specfile.Package
#
self.name = package.name
#Summary and description will be in another place
self.summary = package.summary
self.description = package.description
self.isA = package.isA
self.partOf = package.partOf
self.license = package.license
self.icon = package.icon
#from dependencies.Dependency
self.packageDependencies = package.packageDependencies
#String
self.componentDependencies = package.componentDependencies
self.files = package.files
self.conflicts = package.conflicts
self.providesComar = package.providesComar
self.additionalFiles = package.additionalFiles
#List of specfile.UPDATE. History will be in another place
#self.history = package.history
#
#from metadata.Package (This is plain stupid.. classes with same name, extending one another.)
#
self.build = package.build
self.distribution = package.distribution
self.distributionRelease = package.distributionRelease
self.architecture = package.architecture
self.installedSize = package.installedSize
self.packageSize = package.packageSize
self.packageHash = package.packageHash
self.packageURI = package.packageURI
#Delta (List of metadata.Delta objects)
#self.deltaPackages = package.deltaPackages
self.packageFormat = package.packageFormat
#Expanded from metadata.Source
self.sourceName = package.source.name
self.sourceHomepage = package.source.homepage
#Expanded from specfile.Packager
self.sourcePackagerName = package.source.packager.name
self.sourcePackagerEmail = package.source.packager.email