Last active
January 17, 2020 17:46
-
-
Save endersonmenezes/3d5061e242fc3fd521de59261f83fe80 to your computer and use it in GitHub Desktop.
Uma breve comparação entre verificação de itens em um array, utilizando chaves aleatórias em MD5. O conceito desse teste é criar uma ordem de prioridade das chaves, e chegar uma váriavel 'chave' respeitando essa lógica.
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
import secrets | |
import time | |
import numpy as np | |
resultados_if = [] | |
resultados_last = [] | |
resultados_for = [] | |
chave_full = secrets.token_urlsafe(256) | |
chave_com_tag = secrets.token_urlsafe(256) | |
chave_com_usage = secrets.token_urlsafe(256) | |
chave_conta = secrets.token_urlsafe(256) | |
for i in range(1000): | |
t1 = time.time() | |
# Logica para criar um mapeamento aleatório | |
mapeamento = list() | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_full) | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_com_tag) | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_com_usage) | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_conta) | |
if len(mapeamento) == 0: | |
mapeamento.append(secrets.choice([chave_full, chave_com_tag, chave_com_usage, chave_conta])) | |
# Logica para verificar esse mapeamento com IF | |
if chave_full in mapeamento: | |
chave = chave_full | |
elif chave_com_tag in mapeamento: | |
chave = chave_com_tag | |
elif chave_com_usage in mapeamento: | |
chave = chave_com_usage | |
elif chave_conta in mapeamento: | |
chave = chave_conta | |
t2 = time.time() | |
# Envia o resultado para resultados em tempo | |
resultados_if.append(t2-t1) | |
for i in range(1000): | |
t1 = time.time() | |
# Logica para criar um mapeamento aleatório | |
mapeamento = list() | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_full) | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_com_tag) | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_com_usage) | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_conta) | |
if len(mapeamento) == 0: | |
mapeamento.append(secrets.choice([chave_full, chave_com_tag, chave_com_usage, chave_conta])) | |
# Logica para verificar esse mapeamento com IF | |
chave = mapeamento[-1] | |
t2 = time.time() | |
# Envia o resultado para resultados em tempo | |
resultados_last.append(t2-t1) | |
for i in range(1000): | |
t1 = time.time() | |
# Logica para criar um mapeamento aleatório | |
mapeamento = list() | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_full) | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_com_tag) | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_com_usage) | |
if bool(secrets.randbits(1)): | |
mapeamento.append(chave_conta) | |
if len(mapeamento) == 0: | |
mapeamento.append(secrets.choice([chave_full, chave_com_tag, chave_com_usage, chave_conta])) | |
# Logica para verificar esse mapeamento com IF | |
for item in mapeamento: | |
chave = item | |
t2 = time.time() | |
# Envia o resultado para resultados em tempo | |
resultados_for.append(t2-t1) | |
np_resultados_if = np.array(resultados_if) | |
np_resultados_last = np.array(resultados_last) | |
np_resultados_for = np.array(resultados_for) | |
print('A média de tempo utilizando IF, foi dê: {}'.format(np_resultados_if.mean())) | |
print('A média de tempo utilizando LAST ITEM, foi dê: {}'.format(np_resultados_last.mean())) | |
print('A média de tempo utilizando FOR, foi dê: {}'.format(np_resultados_for.mean())) | |
print('--') | |
print('A SOMA de tempo utilizando IF, foi dê: {}'.format(np_resultados_if.sum())) | |
print('A SOMA de tempo utilizando LAST ITEM, foi dê: {}'.format(np_resultados_last.sum())) | |
print('A SOMA de tempo utilizando FOR, foi dê: {}'.format(np_resultados_for.sum())) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment