User Guide
Epochly User Guide: Decorators
Use @epochly.optimize and other decorators to target specific functions for acceleration with fine-grained control.
Function decorators for applying Epochly optimizations.
@optimize
Main optimization decorator. Applies progressive enhancement based on configured level.
Signature
@epochly.optimizedef function(args):...@epochly.optimize(level=3)def function(args):...@epochly.optimize(level=2)def function(args):...
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
level | int | None | Target enhancement level (0-4) |
monitor_performance | bool | True | Enable performance monitoring |
Example
import epochly@epochly.optimizedef process_data(data):return [x ** 2 for x in data]@epochly.optimize(level=3)def heavy_computation(matrix):return matrix_multiply(matrix)
@performance_monitor
Add performance monitoring without optimization.
Signature
@epochly.performance_monitordef function(args):...@epochly.performance_monitordef function(args):...
Parameters
This decorator takes no parameters. It is a bare decorator.
Example
import epochly@epochly.performance_monitordef tracked_function(data):return process(data)result = tracked_function(my_data)metrics = epochly.get_metrics()
@jit_compile
Force JIT compilation for numerical functions.
Signature
@epochly.jit_compiledef function(args):...@epochly.jit_compiledef function(args):...
Parameters
This decorator takes no parameters. It is a bare decorator.
Example
import epochlyimport numpy as np@epochly.jit_compiledef fast_sum(arr):total = 0.0for i in range(len(arr)):total += arr[i]return totalresult = fast_sum(np.random.rand(1000000))
@full_optimize
Apply maximum optimization (Level 3 or 4).
Signature
@epochly.full_optimizedef function(args):...@epochly.full_optimizedef function(args):...
Parameters
This decorator takes no parameters. It is a bare decorator.
Example
import epochly@epochly.full_optimizedef matrix_operation(matrix):return heavy_computation(matrix)
@threading_optimize
Apply Level 1 threading optimization for I/O-bound functions.
Signature
@epochly.threading_optimizedef function(args):...@epochly.threading_optimize(max_workers=32)def function(args):...
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
max_workers | int | None | Maximum thread count |
Example
import epochly@epochly.threading_optimize(max_workers=16)def fetch_urls(urls):return [fetch(url) for url in urls]
Decorator Stacking
Decorators can be combined:
import epochly@epochly.performance_monitor@epochly.optimize(level=2)def monitored_optimized(data):return process(data)
Accessing Original Function
The original unoptimized function is accessible:
import epochly@epochly.optimizedef my_function(data):return process(data)# Call optimized versionresult = my_function(data)# Call original versionoriginal_result = my_function._epochly_original(data)
Decorator Metadata
Decorated functions have metadata attributes:
| Attribute | Description |
|---|---|
_epochly_enhanced | True if enhanced |
_epochly_level | Enhancement level |
_epochly_original | Original function |