| |
|
| | import time
|
| | import numpy as np
|
| | import sys
|
| | import os
|
| |
|
| |
|
| | sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
| |
|
| | from mnemocore.core.engine import HAIMEngine
|
| | from mnemocore.core.binary_hdv import TextEncoder
|
| |
|
| | def benchmark():
|
| | print("Initializing Engine...")
|
| | engine = HAIMEngine(dimension=10000)
|
| |
|
| | encoded_text = "The quick brown fox jumps over the lazy dog " * 50
|
| | print(f"Text length: {len(encoded_text.split())} tokens")
|
| |
|
| |
|
| | print("\n--- Legacy Encoding (Float/Numpy) ---")
|
| |
|
| |
|
| | start_time = time.time()
|
| | iterations = 50
|
| | for _ in range(iterations):
|
| | _ = engine._legacy_encode_content_numpy(encoded_text)
|
| | end_time = time.time()
|
| | avg_time = (end_time - start_time) / iterations
|
| | print(f"Average time per document: {avg_time*1000:.2f} ms")
|
| | print(f"Total time for {iterations} docs: {end_time - start_time:.4f} s")
|
| |
|
| |
|
| | print("\n--- Binary Encoding (BinaryHDV) ---")
|
| | encoder = TextEncoder(dimension=10000)
|
| |
|
| | start_time = time.time()
|
| | iterations = 50
|
| | for _ in range(iterations):
|
| |
|
| |
|
| |
|
| |
|
| | _ = encoder.encode(encoded_text)
|
| | end_time = time.time()
|
| | avg_time = (end_time - start_time) / iterations
|
| | print(f"Average time per document (with cache): {avg_time*1000:.2f} ms")
|
| |
|
| |
|
| | print("\n--- Binary Encoding (Cold Cache equivalent) ---")
|
| | start_time = time.time()
|
| | iterations = 10
|
| | for i in range(iterations):
|
| |
|
| | unique_text = f"{encoded_text} {i}"
|
| | _ = encoder.encode(unique_text)
|
| | end_time = time.time()
|
| | avg_time = (end_time - start_time) / iterations
|
| | print(f"Average time per document (unique suffix): {avg_time*1000:.2f} ms")
|
| |
|
| | if __name__ == "__main__":
|
| | benchmark()
|
| |
|