##// END OF EJS Templates
Se realizar la lectura en modo online llamando al metodo digitalRFReader(self.path) en reemplazo del metodo reload(), grabando previamente el path de lectura o directorio superior donde se almacena la data. Adicionalmente, se ha definido un tiempo de espera de 3 segundos para dar tiempo suficiente al programa de adquisicion de generar archivos. ...
Se realizar la lectura en modo online llamando al metodo digitalRFReader(self.path) en reemplazo del metodo reload(), grabando previamente el path de lectura o directorio superior donde se almacena la data. Adicionalmente, se ha definido un tiempo de espera de 3 segundos para dar tiempo suficiente al programa de adquisicion de generar archivos. El archivo jroIO_digitalRF.py utiliza la libreria digital_rf cuya version actual es la 2.62( 2017 ) ,esta libreria no tiene definido el metodo o clase reload, este metodo existe en la version 2.0(2014), si uno revisa el archivo jroIO_usrp.py, esta unidad de lectura trabaja con la version 2.0 llamada digital_rf_hdf5, para hacer uso de esta unidad de lectura se instalan los programas correspondiente pero el formato y la informacion difiere un poco de la version actual. Se infiere entonces que al desarrollar del archivo jroIO_digitalRF.py, esperaba que la libreria aun tenga incluido el metodo reload con el update de las versiones pero este ya no es parte del desarrollo, Se realizo la consulta al desarrollador actual de digitalRF Ryan Voltz si se iba a incluir a futuro pero indico que no era necesario.

File last commit:

r697:7ac8878019bb
r1234:b6a76136b1f3
Show More
test _serializer_speed.py
174 lines | 5.9 KiB | text/x-python | PythonLexer
/ schainpy / model / serializer / test / test _serializer_speed.py
'''
Created on Jul 16, 2014
@author: roj-idl71
'''
"""
Dependencies:
pip install tabulate simplejson python-cjson ujson yajl msgpack-python
"""
from timeit import timeit
from tabulate import tabulate
setup = '''d = {
'words': """
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Mauris adipiscing adipiscing placerat.
Vestibulum augue augue,
pellentesque quis sollicitudin id, adipiscing.
""",
'boolean' : False,
'list': range(10),
'dict': dict((str(i),'a') for i in xrange(10)),
'int': 100,
'float': 100.123456,
}'''
setup = '''import numpy;
import datetime;
d = {
'words': """
Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Mauris adipiscing adipiscing placerat.
Vestibulum augue augue,
pellentesque quis sollicitudin id, adipiscing.
""",
'boolean' : False,
'list': range(10),
'dict': dict((str(i),'a') for i in xrange(10)),
'int': 100,
'float': 100.123456,
'datetime' : datetime.datetime(2001,1,1,10,10,10)
}'''
setup_pickle = '%s ; import pickle ; src = pickle.dumps(d)' % setup
setup_pickle2 = '%s ; import pickle ; src = pickle.dumps(d, 2)' % setup
setup_cpickle = '%s ; import cPickle ; src = cPickle.dumps(d)' % setup
setup_cpickle2 = '%s ; import cPickle ; src = cPickle.dumps(d, 2)' % setup
setup_json = '%s ; import json; src = json.dumps(d)' % setup
setup_ujson = '%s ; import ujson; src = ujson.encode(d)' % setup
setup_cjson = '%s ; import cjson; src = cjson.encode(d)' % setup
setup_simplejson = '%s ; import simplejson; src = simplejson.dump(d)' % setup
setup_jsonpickle = '%s ; import jsonpickle; src = jsonpickle.encode(d)' % setup
setup_yaml = '%s ; import yaml; src = yaml.dump(d)' % setup
setup_msgpack = '%s ; import msgpack; src = msgpack.dumps(d)' % setup
setup_msgpack_np = '%s; import msgpack_numpy as msgpack; src = msgpack.dumps(d)' % setup
tests = [
# (title, setup, enc_test, dec_test, result)
('cPickle (binary)', 'import cPickle; %s' % setup_cpickle2, 'cPickle.dumps(d, 2)', 'r = cPickle.loads(src)', 'print r'),
('cPickle (ascii)', 'import cPickle; %s' % setup_cpickle, 'cPickle.dumps(d, 0)', 'r = cPickle.loads(src)', 'print r'),
('pickle (binary)', 'import pickle; %s' % setup_pickle2, 'pickle.dumps(d, 2)', 'r = pickle.loads(src)', 'print r'),
('pickle (ascii)', 'import pickle; %s' % setup_pickle, 'pickle.dumps(d, 0)', 'r = pickle.loads(src)', 'print r'),
('jsonpickle', 'import jsonpickle; %s' % setup_jsonpickle, 'jsonpickle.encode(d)', 'r = jsonpickle.decode(src)', 'print r'),
# ('msgpack-numpy-python', '%s' % setup_msgpack_np, 'msgpack.dumps(d)', 'r = msgpack.loads(src)', 'print r'),
('ujson', 'import ujson; %s' % setup_ujson, 'ujson.encode(d)', 'r = ujson.decode(src)', 'print r'),
# ('msgpack-python', 'import msgpack; %s' % setup_msgpack, 'msgpack.dumps(d)', 'r = msgpack.loads(src)', 'print r'),
# ('json', 'import json; %s' % setup_json, 'json.dumps(d)', 'r = json.loads(src)', 'print r'),
# ('python-cjson-1.0.5', 'import cjson; %s' % setup_cjson, 'cjson.encode(d)', 'r = cjson.decode(src)', 'print r'),
# ('simplejson-3.3.1', 'import simplejson; %s' % setup_json, 'simplejson.dumps(d)', 'r = simplejson.loads(src)', 'print r'),
('yaml', 'import yaml; %s' % setup_yaml, 'yaml.dump(d)', 'r = yaml.load(src)', 'print r'),
]
loops = 1
enc_table = []
dec_table = []
print "Running tests (%d loops each)" % loops
for title, mod, enc, dec, msg in tests:
print title
### Getting the package size
exec mod
size = len("".join(src))
print " [Encode]", enc
result = timeit(enc, mod, number=loops)
enc_table.append([title, result, size])
print " [Decode]", dec
result = timeit(dec, mod, number=loops)
dec_table.append([title, result])
print " Result"
result = timeit(msg, mod+';'+dec, number=1)
enc_table.sort(key=lambda x: x[1])
enc_table.insert(0, ['Package', 'Seconds', 'Size'])
dec_table.sort(key=lambda x: x[1])
dec_table.insert(0, ['Package', 'Seconds'])
print "\nEncoding Test (%d loops)" % loops
print tabulate(enc_table, headers="firstrow")
print "\nDecoding Test (%d loops)" % loops
print tabulate(dec_table, headers="firstrow")
"""
OUTPUT:
Running tests (15000 loops each)
pickle (ascii)
[Encode] pickle.dumps(d, 0)
[Decode] pickle.loads(src)
pickle (binary)
[Encode] pickle.dumps(d, 2)
[Decode] pickle.loads(src)
cPickle (ascii)
[Encode] cPickle.dumps(d, 0)
[Decode] cPickle.loads(src)
cPickle (binary)
[Encode] cPickle.dumps(d, 2)
[Decode] cPickle.loads(src)
json
[Encode] json.dumps(d)
[Decode] json.loads(src)
simplejson-3.3.1
[Encode] simplejson.dumps(d)
[Decode] simplejson.loads(src)
python-cjson-1.0.5
[Encode] cjson.encode(d)
[Decode] cjson.decode(src)
ujson-1.33
[Encode] ujson.dumps(d)
[Decode] ujson.loads(src)
yajl 0.3.5
[Encode] yajl.dumps(d)
[Decode] yajl.loads(src)
msgpack-python-0.3.0
[Encode] msgpack.dumps(d)
[Decode] msgpack.loads(src)
Encoding Test (15000 loops)
Package Seconds
-------------------- ---------
ujson-1.33 0.232215
msgpack-python-0.3.0 0.241945
cPickle (binary) 0.305273
yajl 0.3.5 0.634148
python-cjson-1.0.5 0.680604
json 0.780438
simplejson-3.3.1 1.04763
cPickle (ascii) 1.62062
pickle (ascii) 14.0497
pickle (binary) 15.4712
Decoding Test (15000 loops)
Package Seconds
-------------------- ---------
msgpack-python-0.3.0 0.240885
cPickle (binary) 0.393152
ujson-1.33 0.396875
python-cjson-1.0.5 0.694321
yajl 0.3.5 0.748369
simplejson-3.3.1 0.780531
cPickle (ascii) 1.38561
json 1.65921
pickle (binary) 5.20554
pickle (ascii) 17.8767
"""