Dynamic Library Function Selection for Performance and Compatibility
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing systems face performance degradation due to the all-or-nothing choice between native and bundled libraries, where applications can only use functions from one library, leading to suboptimal performance when specialized hardware is available but not utilized.
Innovation Solution
Implement a method that allows applications to dynamically invoke functions from both native and bundled libraries based on availability, using function tables to determine which library's version of a function to use, enabling the use of customized functions on supported hardware while providing generic functions on unsupported devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If applications use bundled application library to access additional functions, then functionality and backwards compatibility are improved, but performance deteriorates because non-customized versions of functions cannot leverage specialized hardware
Solution Approach 1:
The patent segments the library functions into two distinct categories: customized native library functions optimized for specific hardware and generic bundled application library functions. This segmentation allows the system to selectively apply different library versions based on hardware capability, enabling applications to access specialized hardware-optimized functions when available while maintaining fallback to generic functions for compatibility, thus resolving the contradiction between functionality and performance
Solution Approach 2:
The patent implements dynamic function selection where the application can switch between bundled and native library versions based on runtime hardware detection. The system dynamically determines which library version to use for each function call, allowing optimal performance on capable devices while maintaining broad compatibility, thereby resolving the static all-or-nothing choice between functionality and performance
2Productivity
If applications are compiled to use native library, then performance is improved through customized functions, but adaptability deteriorates because functions available only in bundled library cannot be accessed
Solution Approach 1:
The patent creates a universal library access mechanism where applications can access functions from both the customized native library and the generic bundled application library. This multi-functionality approach allows a single application to leverage hardware-optimized functions when available while simultaneously accessing additional functions from the bundled library that may not be present in the native version, resolving the contradiction between performance and adaptability
3Device complexity
If the all-or-nothing choice between native and bundled libraries is enforced, then device complexity is reduced, but productivity deteriorates due to inability to leverage specialized hardware when available
Solution Approach 1:
The patent introduces an intermediary layer that manages the complexity of coordinating between bundled and native libraries. This intermediary handles the logic of determining which library version to use for each function, abstracting the complexity from applications while enabling performance optimization. The intermediary resolves the contradiction by centralizing the decision-making process, allowing applications to benefit from hardware-optimized functions without requiring complex application-level logic
Data Source
AI summary
An application executing on a computing device may invoke a function call of a first function. The computing device may support a bundled application library of functions and a native library of functions. It may be determined that code for executing the first function exists in both the bundled application library and the native library, and the application may execute the first function using the code in the native library. While the application continues execution on the computing device, the application may invoke a function call of a second function. It may be determined that, of the bundled application library and the native library, the code for executing the second function exists in the bundled application library. The application may execute the second function using the code in the bundled application library.


