예제 #1
0
    def setUp(self):
        print "Setup!!!"
        from datetime import datetime

        for relpath in [ '../data', './data' ]:
            fp = os.path.abspath( relpath)
            if os.path.exists(fp):
                break
        print fp
        self.bp = BerkeleyPersister( fp, "SENDER","PHROMS", dt = datetime( 2009, 1, 11) )
        self.spec = parse_specification(version = "FIX.4.2")
        (self.inDb,self.outDb) = self.bp.getTodayPersister( )
        # data can arrive in arbitrary shapes and sizes so need
        # to ensure that a parser can cope with all the data ( even byte-at-a-time)
        print [ x.partition("=") for x in "a=b|".split("|") ]
        print [ x.partition("=") for x in "a=b|c".split("|") ]
        print [ x.partition("=") for x in "a=b|c=".split("|") ]
        print [ x.partition("=") for x in "a=b|c=d".split("|") ]

        print self.inDb.stat()

        # Build a big pyfix string
        c = self.inDb.cursor()
        self.megaString = ''
        messages = 0
        while True:
            i_s = c.next()
            if not i_s:
                break
            _, s = i_s
            self.megaString+= s
        print "Megastring is %s long" % len(self.megaString )
예제 #2
0
파일: speedTest.py 프로젝트: smandy/pyfix
from datetime import datetime
import time

from FIXParser import SynchronousParser
from FIXSpec import parse_specification
from pyfix.persistence import BerkeleyPersister

fixSpec = parse_specification(version="FIX.4.2")

fr = "/Users/andy/persist/send"
bp = BerkeleyPersister(fr, dt=datetime(2009, 1, 13))
(inDb, outDb) = bp.getTodayPersister("SENDER", "PYFIX")

#p = BerkeleyPersister( fileRoot, dt = datetime(2009, 11,1) )
p = SynchronousParser(fixSpec)


def doit():
    for db in (inDb, outDb):
        start = time.time()
        i = 0.0
        c = db.cursor()
        while True:
            v = c.next()
            if not v:
                break
            msg, _, _ = p.feed(v[1])
            i += 1
        endTime = time.time()
        dur = endTime - start
        print "%s parsed %s messages in %s secs (%s/sec)" % (db, i, dur,