Skip to content

Instantly share code, notes, and snippets.

@flavioamieiro
Created October 22, 2015 15:13
Show Gist options
  • Save flavioamieiro/cdfe6addcd24a83c2a6e to your computer and use it in GitHub Desktop.
Save flavioamieiro/cdfe6addcd24a83c2a6e to your computer and use it in GitHub Desktop.
#-*- 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