Created
October 22, 2015 15:13
-
-
Save flavioamieiro/cdfe6addcd24a83c2a6e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#-*- coding: utf-8 -*- | |
import base64 | |
import pymongo | |
from pypln.backend.workers import Extractor | |
from pypln.backend.celery_app import app | |
from pypln.backend import config | |
client = pymongo.MongoClient(host=config.MONGODB_CONFIG['host'], | |
port=config.MONGODB_CONFIG['port']) | |
collection = client[config.MONGODB_CONFIG['database'] | |
][config.MONGODB_CONFIG['collection']] | |
app.conf.update(CELERY_ALWAYS_EAGER=True) | |
def benchmark_without_mongodict(): | |
text = """ | |
O algoritmo de Dijkstra, concebido pelo cientista da computação holandês Edsger Dijkstra em 1956 e publicado em 19591 2 , soluciona o problema do caminho mais curto num grafo dirigido ou não dirigido com arestas de peso não negativo, em tempo computacional O([m+n]log n) onde m é o número de arestas e n é o número de vértices. O algoritmo que serve para resolver o mesmo problema em um grafo com pesos negativos é o algoritmo de Bellman-Ford, que possui maior tempo de execução que o Dijkstra. | |
""" | |
d = {'contents': base64.b64encode(text)} | |
doc_id = collection.insert(d) | |
result = Extractor().delay(doc_id) | |
result.get() | |
refreshed_document = collection.find_one(doc_id) | |
def benchmark_with_mongodict(): | |
from pypln.backend.mongodict_adapter import MongoDictAdapter | |
text = """ | |
O algoritmo de Dijkstra, concebido pelo cientista da computação holandês Edsger Dijkstra em 1956 e publicado em 19591 2 , soluciona o problema do caminho mais curto num grafo dirigido ou não dirigido com arestas de peso não negativo, em tempo computacional O([m+n]log n) onde m é o número de arestas e n é o número de vértices. O algoritmo que serve para resolver o mesmo problema em um grafo com pesos negativos é o algoritmo de Bellman-Ford, que possui maior tempo de execução que o Dijkstra. | |
""" | |
doc_id = 1234 | |
document = MongoDictAdapter(doc_id=doc_id, | |
host=config.MONGODB_CONFIG['host'], | |
port=config.MONGODB_CONFIG['port'], | |
database=config.MONGODB_CONFIG['database']) | |
# Create a dictionary out of our document. We could simply pass | |
# it on to the process method, but for now we won't let the user | |
# manipulate the MongoDict directly. | |
document['contents'] = text | |
result = Extractor().delay(doc_id) | |
result.get() | |
refreshed_document = MongoDictAdapter(doc_id=doc_id, | |
host=config.MONGODB_CONFIG['host'], | |
port=config.MONGODB_CONFIG['port'], | |
database=config.MONGODB_CONFIG['database']) | |
for i in range(100): | |
#benchmark_without_mongodict() | |
benchmark_with_mongodict() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment