|
1 | | -# VFBquery Performance Analysis |
| 1 | +# VFBquery Performance Test Results |
2 | 2 |
|
3 | | -## Executive Summary |
| 3 | +**Test Date:** $(date -u '+%Y-%m-%d %H:%M:%S UTC') |
| 4 | +**Git Commit:** 8ff2eec7423afbdf1dc8773cf3e674b6bf9a98fe |
| 5 | +**Branch:** dev |
| 6 | +**Workflow Run:** 17589292536 |
4 | 7 |
|
5 | | -VFBquery provides optimal performance through intelligent caching, delivering up to 54,000x speedup for repeated queries. |
| 8 | +## Test Overview |
6 | 9 |
|
7 | | -## Performance Comparison |
| 10 | +This performance test measures the execution time of VFB term info queries for specific terms: |
8 | 11 |
|
9 | | -### Without Caching |
| 12 | +- **FBbt_00003748**: mushroom body (anatomical class) |
| 13 | +- **VFB_00101567**: individual anatomy data |
10 | 14 |
|
11 | | -- First query: 1-2 seconds |
12 | | -- Subsequent queries: 1-2 seconds (no improvement) |
| 15 | +## Performance Thresholds |
13 | 16 |
|
14 | | -### With VFBquery Caching (Default) |
| 17 | +- Maximum single query time: 5 minutes (300 seconds) |
| 18 | +- Maximum total time for both queries: 7.5 minutes (450 seconds) |
15 | 19 |
|
16 | | -- First query: 1-2 seconds (populates cache) |
17 | | -- Subsequent queries: <0.1 seconds (54,000x faster) |
| 20 | +## Test Results |
18 | 21 |
|
19 | | -## Caching Features |
20 | | - |
21 | | -VFBquery includes intelligent caching enabled by default: |
22 | | - |
23 | | -- **Automatic caching**: Works transparently without configuration |
24 | | -- **3-month TTL**: Balances performance and data freshness |
25 | | -- **2GB memory limit**: Prevents memory bloat with LRU eviction |
26 | | -- **Disk persistence**: Cache survives Python restarts |
27 | | - |
28 | | -## Best Practices |
29 | | - |
30 | | -### Production Deployment |
31 | | - |
32 | | -- **Caching is enabled by default** - no configuration needed |
33 | | -- **Monitor cache performance** with `get_vfbquery_cache_stats()` |
34 | | -- **Adjust memory limits** if needed for long-running applications |
35 | | -- **Use environment variable** to disable caching in specific scenarios |
36 | | - |
37 | | -## VFBquery Caching Features |
38 | | - |
39 | | -**Production-Ready Caching (Enabled by Default):** |
40 | | - |
41 | | -- ✅ Multi-layer caching (SOLR, parsing, query results, responses) |
42 | | -- ✅ Memory + disk persistence |
43 | | -- ✅ 3-month TTL with 2GB memory limit |
44 | | -- ✅ Zero configuration required |
45 | | -- ✅ Environment variable control (`VFBQUERY_CACHE_ENABLED`) |
46 | | -- ✅ Cache statistics and monitoring |
47 | | - |
48 | | -**Performance Results:** |
| 22 | +``` |
| 23 | +$(cat performance_test_output.log) |
| 24 | +``` |
49 | 25 |
|
50 | | -- 54,000x speedup for repeated `get_term_info` calls |
51 | | -- Sub-millisecond response times after initial cache population |
52 | | -- Backward compatible with all existing VFBquery code |
| 26 | +## Summary |
53 | 27 |
|
54 | | -**Usage:** |
| 28 | +✅ **Test Status**: Performance test completed |
55 | 29 |
|
56 | | -```python |
57 | | -import vfbquery as vfb |
| 30 | +- **FBbt_00003748 Query Time**: 155.0068 seconds |
| 31 | +- **VFB_00101567 Query Time**: 0.2188 seconds |
| 32 | +- **Total Query Time**: 155.2256 seconds |
58 | 33 |
|
59 | | -# Caching works automatically |
60 | | -result = vfb.get_term_info('FBbt_00003748') # Fast on repeat calls! |
61 | | -``` |
| 34 | +🎉 **Result**: All performance thresholds met! |
62 | 35 |
|
63 | | -See `CACHING.md` for complete documentation. |
| 36 | +--- |
| 37 | +*Last updated: 2025-09-09 16:35:11 UTC* |
0 commit comments