Known Limitations - danielep71/VBA-Performance_Manager GitHub Wiki

Known Limitations

This page documents the main limitations, boundaries, and caveats of cPerformanceManager.

Windows-oriented design

The class is designed primarily for Windows-based Excel/VBA environments. API-backed timing methods depend on Windows APIs.

Not all timing methods are equally suitable for benchmarking

The class exposes multiple timing methods, but they are not all equally benchmark-worthy. Method 5 is the preferred benchmark path.

ElapsedTime is presentation-oriented

Use ElapsedSeconds for numeric logic and measurement comparisons.

Very small benchmarks are still difficult

Even with a good timing class, extremely tiny workloads remain hard to benchmark cleanly because the measured cost may be comparable to:

  • VBA call overhead
  • loop overhead
  • class wrapper overhead
  • Excel object-model overhead
  • scheduler noise

Benchmark results are environment-sensitive

Results vary with workbook state, calculation state, system load, and Excel behavior.

Pause is a utility, not a precision scheduler

Pause is useful for demos, tests, and simple waits, but it is not a substitute for high-precision scheduling.

timeBeginPeriod(1) is system-affecting

Method 3 support may request 1 ms multimedia timer resolution. That affects system timer behavior more broadly than just the current class instance.

TW suppression depends on external shared support

TW behavior requires the supporting shared module. The class will not compile if the corresponding procedures are missing.

Checkpoint/reporting state is session-bound

Checkpoint data and run labels belong to the current timing session. A new StartTimer clears checkpoint/report state by design.

ReportAsText is developer-facing

ReportAsText is intended for readable diagnostics. Use ReportAsArray when you need a machine-readable export surface.