This document outlines the performance and stability standards that all extensions must meet to ensure an optimal user experience across the Configura ecosystem. These standards protect the CET user base by establishing clear expectations for extension quality.
Current Version: 2.0
Last Updated: February 2025
Next Review: August 2025
Note: These standards are regularly reviewed and updated to reflect evolving technology and user expectations. Extension owners will be notified of any changes at least 90 days before implementation.
All extensions must demonstrate robust stability with minimal crashes or errors. Extensions should be thoroughly tested across a variety of scenarios before submission.
Requirement | Description | Verification Method |
---|---|---|
Error Handling | Implement appropriate error handling throughout the extension | Code review, test scenarios |
Exception Management | Properly catch and manage exceptions | Code review, crash testing |
Load State Verification | Verify object state before operations | Code review, load testing |
Extension owners must actively monitor and address bug reports. All reported issues will be tracked through the Jira system as outlined in the Basic Support Policy.
Response Time Expectations:
Requirement | Description | Impact of Non-Compliance |
---|---|---|
Version Compatibility | Support opening drawings from at least the last 4 major CET versions | User inability to open existing drawings |
Data Integrity | Maintain all product data when saving and loading | Data loss or corruption |
Legacy Support | Implement proper load code for backward compatibility | Crashes when opening older drawings |
Testing Recommendation: Maintain a library of test drawings from previous versions to verify compatibility with each update.
Extensions must ensure patch installation succeeds consistently. Persistent installation failures can result in extension deactivation.
Common Causes of Installation Failures:
Extensions are classified into three categories based on complexity and scope:
Category | Description | Examples |
---|---|---|
Small | Limited feature set, simple products | Basic furniture, simple components |
Medium | Moderate complexity, standard feature set | Standard office systems, kitchen components |
Large | Complex systems, extensive feature set | Complete building systems, complex design tools |
Category | Maximum Startup Time | Testing Environment |
---|---|---|
Small | < 3.8 seconds | Standard benchmark system* |
Medium | < 5.3 seconds | Standard benchmark system* |
Large | < 7.5 seconds | Standard benchmark system* |
*Standard benchmark system specifications are available in the hardware specifications.
Measurement Methodology: Startup time is measured from the moment the extension begins loading until it is fully functional. Measurements are taken as an average of 5 cold starts on the standard benchmark system.
Category | Maximum Load Time (Standard Test Drawing) |
---|---|
Small | < 6.0 seconds |
Medium | < 15.0 seconds |
Large | < 2 minutes 30 seconds |
Standard Test Drawing Definition:
Hooks are injection points that allow custom code execution during CET operations. Improper implementation can severely impact performance.
Hook Type | Performance Requirement | Best Practice |
---|---|---|
Part Hooks | Extremely fast (<10ms) | Minimal operations, caching where possible |
Drawing Load | Efficient (<500ms) | Defer non-critical operations |
Start | Optimized (<250ms) | Initialize only what’s immediately needed |
Selection | Extremely fast (<5ms) | Use lightweight calculations only |
Testing Tool: Use the CM code profiler to measure hook execution time.
The CET task system must be used responsibly to prevent performance degradation.
Guidelines:
Local bound calculations must be cached to improve performance, as this information is frequently requested by the system.
Implementation:
public box localBound() {
if (cached_bound is valid)
return cached_bound;
// Calculate bound
// Store in cached_bound
return calculated_bound;
}
Graphics Type | Caching Requirement | Verification Method |
---|---|---|
3D Graphics | Must be cached using CM caching mechanisms | Performance profiling, code review |
2D Graphics | Should be optimized for common scenarios | Visual performance testing |
PropDef keys should be concise to minimize CPU operations:
Recommendation | Example |
---|---|
Good | “w”, “h”, “d” |
Acceptable | “width”, “height”, “depth” |
Poor | “product_width”, “product_height_value” |
Detail Level | Minimum | Maximum (Upper Safety Bound) | Maximum Triangles/m² |
---|---|---|---|
Low | 100 | 500 | 50 |
Medium | 100 | 2,000 | 200 |
High | 100 | 10,000 | 1,000 |
Super | 100 | 50,000 | 5,000 |
Triangle Budget Calculation:
SUGGESTED_TRIANGLE_COUNT = MODEL_TRIANGLE_AREA * MAX_ALLOWED_DENSITY
If SUGGESTED_TRIANGLE_COUNT > MAX_UPPER_LIMIT then use MAX_UPPER_LIMIT
Models will be blocked from upload if any level of detail exceeds:
100 * SUGGESTED_TRIANGLE_COUNT
To optimize models that exceed budget:
Optimize data catalog structures to prevent performance issues:
Recommendation | Description | Impact |
---|---|---|
Avoid repetitive features | Consolidate similar features | Reduces loading time |
Limit feature nesting | Keep structure hierarchy shallow | Improves navigation |
Optimize XML | Minimize unnecessary attributes | Reduces memory usage |
Complete material mapping must be implemented for all products to ensure:
Configura will monitor extension performance through:
Failure to meet these standards may result in:
Configura offers support for extensions struggling to meet performance standards:
Performance testing is conducted on standard hardware configurations representing common user setups:
Standard Test System:
Standardized test cases are available for extension owners to validate their extensions against these performance criteria. Contact extension-review@configura.com to request the current test suite.
Document Version: 2.0
Last Updated: February 28, 2025
Next Review: August 28, 2025
Configura Publishing Program
© 2025 Configura, Inc. All rights reserved.