WO2008087633A2 - Method for statistics based performance optimization of regenerated code - Google Patents
Method for statistics based performance optimization of regenerated code Download PDFInfo
- Publication number
- WO2008087633A2 WO2008087633A2 PCT/IL2008/000061 IL2008000061W WO2008087633A2 WO 2008087633 A2 WO2008087633 A2 WO 2008087633A2 IL 2008000061 W IL2008000061 W IL 2008000061W WO 2008087633 A2 WO2008087633 A2 WO 2008087633A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- code
- software
- statistics
- regenerated
- avp
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
Definitions
- the present invention relates generally to software execution methodology, and more particularly to methods for optimizing the execution of stack software based on statistical analysis and implementation.
- Diameter Base Protocol is intended to provide an Authentication
- AAA Authorization and Accounting
- the DBP was written by the Internet Engineering Task Force (IETF).
- IETF Internet Engineering Task Force
- 3GPP 3rd Generation Partnership Project
- the IETF is a large open international community of network designers, operators, vendors, and researchers concerned with the evolution of the Internet architecture and the smooth operation of the Internet.
- the 3GPP is a collaborative effort between groups of telecommunications associations, to provide a globally applicable third generation (3G) mobile phone system specification. All standards extending DBP use common user notation for protocol messages and content. Diameter is also intended to work in both local AAA and roaming situations.
- AVP Attribute Value Pair
- the Diameter base protocol provides the following facilities: delivery of attribute value pairs (AVP's); capabilities negotiation; error notification; extensibility, through addition of new commands and AVP's; and basic services necessary for applications, such as handling of user sessions. All data delivered by the protocol is in the form of AVP's. Some of these AVP values are used by the Diameter protocol itself, e.g. peer-to-peer maintenance, while others deliver data associated with particular applications that employ Diameter. AVP's may be added arbitrarily to Diameter messages, so long as the required AVP's are included and AVP's that are explicitly excluded are not included.
- AVP's are used by the base Diameter protocol to support the following required features: transporting of user authentication information, for the purposes of enabling the Diameter server to authenticate the user; transporting of service specific authorization information, between client and servers, allowing the peers to decide whether a user's access request should be granted; exchanging resource usage information, which may be used for accounting purposes, capacity planning, etc; and relaying, proxying and redirecting of Diameter messages through a server hierarchy.
- the Diameter message consists of a header followed by one or more Attribute- Value-Pairs (AVP's).
- An AVP includes a header and a value, and is used to encapsulate protocol-specific data such as routing information, as well as authentication, authorization or accounting information.
- a method in accordance with an embodiment of the invention may include, for example, receiving from a remote site a request to access a first file having a plurality of blocks, said request having a pre-defined format encapsulating an original request of a client of a synchronous client-server system and in accordance with a pre-defined file system; determining, for each of at least some of said plurality of blocks, a differential portion representing a difference between each said block and a corresponding block of a second file; and sending said differential portion to said remote site.
- An apparatus for offloading network, block and file functions from an operating system comprises a network interface coupled to a network for receiving packet flows; one or more processors each having one or more processor cores; a computer-readable medium carrying one or more operating systems and an input/output networking stack which are hosted in one or more of the processor cores.
- the networking stack is shared among the operating systems.
- the networking stack comprises instructions which when executed cause receiving a request for data transfer from one of the operating systems at internal network, block and file system interfaces, and permitting data to be transferred between the internal interfaces and a plurality of external interfaces by preventing the operating systems from performing the data transfer and performing the data transfer on behalf of the operating systems.
- US Pat. Applic. No. 20060248315 Honda teaches a Stack Controller Efficiently
- an interrupt controller monitors the number of free entries of a hardware stack to generate, when the free entry number reaches a number of push- or pop-trigger entries, a push or pop interrupt to send the interrupt to a main controller.
- the main controller retrieves data from the bottom of the hardware stack and pushes the data onto the software stack.
- the main controller repeats this sequence the times equal to a predetermined number of saving entries to perform push interrupt processing.
- the main controller pops data from the software stack and stores the popped data at the bottom of the hardware stack. The main controller repeats this sequence the times equal to a predetermined number of restoring entries to perform pop interrupt processing.
- the apparatus comprises a plurality of processors having cache traffic monitors to monitor cache traffic in the respective processors, a push optimizer coupled with the cache traffic monitors to receive cache traffic information and to determine a selected target processor for an operation to cause data to be pushed to a cache of the selected target processor and a bus agent coupled with the plurality of processors to push data to the cache memory of the selected target processor.
- An automated method for optimization of stack software based on statistical analysis of performance and according to configuration parameters includes generating the original code, collecting statistics of usage patterns and feeding back the results of the statistics to recreate and optimize the code.
- the method further includes regenerating the code, reloading the regenerated code into the system and returning to the statistics collection step, wherein the sequence of generating, collecting, feeding back, regenerating and reloading are reiterated continuously, such that the method continuously provides increasingly optimum code performance.
- the standards are used to compile code generated in Java or C++. Then the Java or C++ compiler generates byte code or native code respectively. There are 3 levels of standards parsing: messages, definitions of AVP's and state machines describing a life- cycle of a user session.
- Software is constructed of programming language code formatted into different structures. Those structures are layered in several levels of inheritance or encapsulation.
- the method described in this invention describes a mechanism which enables adaptation of the internals of a software package, the structure and connections between the different parts and arrangements forming the entire software package, in order to achieve higher utilization, efficiency and robustness.
- the software update is done in a dynamic method based on gathered information or defined criteria. In general the present invention collects statistics about the usages of the messages and uses this information to optimize the generated code.
- Searching for a specific AVP in a message can be time-consuming, since it involves linear (AVP by AVP) parsing.
- Specific fields can be cached or specific patterns can be searched for according to statistical experience.
- Mechanisms are added to the generated code to count the usage of various elements.
- the application layer usage of the generated code is monitored for commonly used patterns and is regenerated to improve performance through automatic processing.
- the code is automatically generated.
- the statistics collection process runs automatically.
- the statistics are fed back to recreate and optimize the regenerated code.
- the code is automatically reloaded into the system. The user only needs to approve the results.
- the invention does not allow the application writer or the above layer to make any mistakes: the generated code is strongly typed;
- AVP header flags rules are well-defined and the generated code does not allow any mistake; message types are well-defined and are specific rather than generic; and generated code is fully specification compliant. If a specific AVP is frequently used by the application layer, it can be permanently cached once after being searched only once and subsequently it will be used often.
- the logical conditions will be ordered according to frequency of occurrence, such that the one occurring most frequently is checked first.
- the present invention provides a mechanism that enables adaptation of the internal structure of a software package or component according to variables such as installation environment, configuration, time of day, gathered historical data and statistics.
- the method detailed in the present invention can use different parameters like those described above in either an on-line or off-line manner, in order to shift and adapt the different internals and structure of the software to fall in line with the configuration parameters supplied.
- This update may result in better performance of the software, better security and/or better memory usage.
- actions in the code are layered in a way that gives priority to the most used actions.
- Those action usage patterns and "popularity" can vary according to different times, days, scenarios and/or configurations, but the order of the actions and their layout in the code is static and stays the same.
- the code, action order and handling can be altered and dynamically adapted according to parameters such as day, time, configuration and/or statistical data.
- checks regarding messages are preferably done in the most efficient way, which commonly gives priority to the most frequently used Diameter protocol messages and Attribute Value Pairs (AVP's). But in different network scenarios and installations, various messages are used differently according to varying patterns of repetition and amount and with different AVP's.
- Diameter message handling as implemented in the software can be updated and modified from one installation to the next based on network usage patterns and statistical information.
- Fig. 1 is a prior art schematic block diagram, exemplifying software internals before optimization
- Fig. 2 is a schematic block diagram representing high level software architecture, constructed in accordance with the principles of the present invention.
- Fig. 3 is a flow chart for optimizing the execution of stack software based on statistical analysis and implementation, constructed in accordance with the principles of the present invention.
- Fig. 1 is a pre-optimized flow, where several conditions are checked, and each one results in a set of operations.
- Fig. 1 provides details of high level internals of the software used in order to demonstrate the present invention.
- software is composed of four main Actions, layered from top condition 110 being checked resulting in Action 115 being performed to condition 140 being checked resulting in bottom Action 145 being performed, as organized during software development, giving the highest priority to Action 115 over the rest of the actions. Higher priority is also given to condition 120 being checked resulting in Action 125 being performed over Action 135 and Action 145, etc.
- condition 130 being checked resulting in Action 135 being performed over Action 145.
- the lowest priority is given to condition 140 being checked. This ordering of the Actions was done during software development to provide the best performance suitable for most common software installations and configurations, where processing continues 150 after all actions are performed.
- Fig. 2 is a schematic block diagram representing high level software architecture, constructed in accordance with the principles of the present invention. Using the available statistical data, it appears that the probability of the fourth condition 140 to be fulfilled is the highest resulting in Action 145 being performed, condition 130 follows resulting in Action 135 being performed, then condition 110 resulting in Action 115 being performed and condition 120 is the most unlikely to happen resulting in Action 125 being performed. This results in the code described in Fig. 2, where the conditions are sorted by their statistical significance. Sorting the logical conditions relieves the need to test improbable conditions, where each such logical test can involve message parsing and/or other time-consuming operations. Again processing continues 150 after all actions are performed.
- Example in Fig. 2 the information gathered is used to adapt and optimize the four main Actions to achieve higher software efficiency, giving highest priority to Action 140 and lowest priority to Action 120.
- Fig. 3 is a flow chart for the automated optimizing of the execution of stack software based on statistical analysis and implementation, constructed in accordance with the principles of the present invention.
- the first step is to generate the original code 310.
- the next step is to collect statistics of usage patterns 320 and then to feed the statistics back into the system in order to proceed to recreate and optimize the code 330.
- the code is reloaded into the system and the code is regenerated 340.
- the system again proceeds to collect statistics of usage patterns 320 and steps 320 to 340 continue reiteratively in order to continuously provide increasingly optimum code performance.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
An automated method for optimization of stack software based on statistical analysis of performance and according to configuration parameters. The method includes generating the original code, collecting statistics of usage patterns and feeding back the results of the statistics to recreate and optimize the code. The method further includes regenerating the code, reloading the regenerated code into the system and returning to the statistics collection step, wherein the sequence of generating, collecting, feeding back, regenerating and reloading are reiterated continuously, such that the method continuously provides increasingly optimum code performance.
Description
METHOD FOR STATISTICS BASED PERFORMANCE OPTIMIZATION OF
REGENERATED CODE
FIELD OF THE INVENTION The present invention relates generally to software execution methodology, and more particularly to methods for optimizing the execution of stack software based on statistical analysis and implementation.
BACKGROUND OF THE INVENTION The Diameter Base Protocol (DBP) is intended to provide an Authentication,
Authorization and Accounting (AAA) framework for applications such as network access or IP mobility. The DBP was written by the Internet Engineering Task Force (IETF). The DBP was adopted and extended by other standardization bodies such as the 3rd Generation Partnership Project (3GPP). The IETF is a large open international community of network designers, operators, vendors, and researchers concerned with the evolution of the Internet architecture and the smooth operation of the Internet. The 3GPP is a collaborative effort between groups of telecommunications associations, to provide a globally applicable third generation (3G) mobile phone system specification. All standards extending DBP use common user notation for protocol messages and content. Diameter is also intended to work in both local AAA and roaming situations.
Every Diameter command is defined by means of the Augmented Backus-Naur Form
(ABNF) syntax, according to the rules defined in Diameter Base Protocol. Whenever the definition and use of an AVP is not specified, what is stated in Diameter protocol details apply. An Attribute Value Pair (AVP) corresponds to an Information Element in a Diameter message.
The Diameter base protocol provides the following facilities: delivery of attribute value pairs (AVP's); capabilities negotiation; error notification; extensibility, through addition of new commands and AVP's; and basic services necessary for applications, such as handling of user sessions.
All data delivered by the protocol is in the form of AVP's. Some of these AVP values are used by the Diameter protocol itself, e.g. peer-to-peer maintenance, while others deliver data associated with particular applications that employ Diameter. AVP's may be added arbitrarily to Diameter messages, so long as the required AVP's are included and AVP's that are explicitly excluded are not included. AVP's are used by the base Diameter protocol to support the following required features: transporting of user authentication information, for the purposes of enabling the Diameter server to authenticate the user; transporting of service specific authorization information, between client and servers, allowing the peers to decide whether a user's access request should be granted; exchanging resource usage information, which may be used for accounting purposes, capacity planning, etc; and relaying, proxying and redirecting of Diameter messages through a server hierarchy.
The Diameter message consists of a header followed by one or more Attribute- Value-Pairs (AVP's). An AVP includes a header and a value, and is used to encapsulate protocol-specific data such as routing information, as well as authentication, authorization or accounting information.
Software optimization is known in the art.
In US Pat. Applic. No. 20070226320, Yuval, et al, disclose a Device, System and
Method for Storage and Access of Computer Files. Briefly, some embodiments of the invention provide, for example, devices, systems and methods for storage and access of computer files. A method in accordance with an embodiment of the invention may include, for example, receiving from a remote site a request to access a first file having a plurality of blocks, said request having a pre-defined format encapsulating an original request of a client of a synchronous client-server system and in accordance with a pre-defined file system; determining, for each of at least some of said plurality of blocks, a differential portion representing a difference between each said block and a corresponding block of a second file; and sending said differential portion to said remote site.
In US Pat. Applic. No. 20070168563, Jha, et al, teach a Single Logical Network Interface for Advanced Load Balancing and Fail-Over Functionality. The invention sets
forth an approach for aggregating a plurality of NICs in a computing device into a single logical NIC as seen by that computing device's operating system. The combination of the single logical NIC and a network resource manager provides a reliable and persistent interface to the operating system and to the network hardware, thereby improving the reliability and ease-of-configuration of the computing device. The invention also may improve communications security by supporting the 802.1X and the 802.1Q networking standards.
In US Pat. Applic. No. 20070011272, Bakke, et al disclose an Offload Stack for Network, Block and File Input and Output. An apparatus for offloading network, block and file functions from an operating system comprises a network interface coupled to a network for receiving packet flows; one or more processors each having one or more processor cores; a computer-readable medium carrying one or more operating systems and an input/output networking stack which are hosted in one or more of the processor cores. The networking stack is shared among the operating systems. The networking stack comprises instructions which when executed cause receiving a request for data transfer from one of the operating systems at internal network, block and file system interfaces, and permitting data to be transferred between the internal interfaces and a plurality of external interfaces by preventing the operating systems from performing the data transfer and performing the data transfer on behalf of the operating systems. In US Pat. Applic. No. 20060248315, Honda teaches a Stack Controller Efficiently
Using the Storage Capacity of a Hardware Stack and a Method Therefore. In a stack controller for use in a microprocessor when executing a program sequence, an interrupt controller monitors the number of free entries of a hardware stack to generate, when the free entry number reaches a number of push- or pop-trigger entries, a push or pop interrupt to send the interrupt to a main controller. In response to the push interrupt, the main controller retrieves data from the bottom of the hardware stack and pushes the data onto the software stack. The main controller repeats this sequence the times equal to a predetermined number of saving entries to perform push interrupt processing. In response to the pop interrupt, the main controller pops data from the software stack and stores the popped data at the bottom of the hardware stack. The main controller repeats this sequence the times equal to a predetermined number of restoring entries to perform pop interrupt processing.
In US Pat. Applic. No. 20060004961 , Tu1 et al, disclose Direct Processor Cache Access Within a System Having a Coherent Multi-Processor Protocol. The apparatus
comprises a plurality of processors having cache traffic monitors to monitor cache traffic in the respective processors, a push optimizer coupled with the cache traffic monitors to receive cache traffic information and to determine a selected target processor for an operation to cause data to be pushed to a cache of the selected target processor and a bus agent coupled with the plurality of processors to push data to the cache memory of the selected target processor.
Thus, prior art methods are quite cumbersome, and it would be advantageous to provide a simplified, effective method to optimize the execution of software.
SUMMARY OF THE INVENTION
Accordingly, it is a principal object of the present invention to optimize the execution of stack software based on statistical analysis and implementation.
It is another principal object of the present invention to enable adaptation of the internals of a software package
It is one other principal object of the present invention to achieve higher utilization, efficiency and robustness.
It is one further principal object of the present invention to modify software in a dynamic method based on gathered information or defined criteria. It is still one other principal object of the present invention to generate code that is fully compliant with the Diameter standards.
It is yet one other principal object of the present invention to generate code that is strongly typed, i.e., every Diameter message generated code has a unique interface for adding and approaching its specification based AVPs and every generated AVP code has a unique interface fully compliant with its specification definition.
An automated method for optimization of stack software based on statistical analysis of performance and according to configuration parameters. The method includes generating the original code, collecting statistics of usage patterns and feeding back the results of the statistics to recreate and optimize the code. The method further includes regenerating the code, reloading the regenerated code into the system and returning to the statistics collection step, wherein the sequence of generating, collecting, feeding back, regenerating and reloading are reiterated continuously, such that the method continuously provides increasingly optimum code performance.
The standards are used to compile code generated in Java or C++. Then the Java or C++ compiler generates byte code or native code respectively. There are 3 levels of standards parsing: messages, definitions of AVP's and state machines describing a life- cycle of a user session. Software is constructed of programming language code formatted into different structures. Those structures are layered in several levels of inheritance or encapsulation. The method described in this invention describes a mechanism which enables adaptation of the internals of a software package, the structure and connections between the different parts and arrangements forming the entire software package, in order to achieve higher utilization, efficiency and robustness. The software update is done in a dynamic method based on gathered information or defined criteria. In general the present invention collects statistics about the usages of the messages and uses this information to optimize the generated code.
Searching for a specific AVP in a message can be time-consuming, since it involves linear (AVP by AVP) parsing. Specific fields can be cached or specific patterns can be searched for according to statistical experience. Mechanisms are added to the generated code to count the usage of various elements. The application layer usage of the generated code is monitored for commonly used patterns and is regenerated to improve performance through automatic processing. The code is automatically generated. The statistics collection process runs automatically.
The statistics are fed back to recreate and optimize the regenerated code. The code is automatically reloaded into the system. The user only needs to approve the results.
The invention does not allow the application writer or the above layer to make any mistakes: the generated code is strongly typed;
AVP header flags rules are well-defined and the generated code does not allow any mistake; message types are well-defined and are specific rather than generic; and generated code is fully specification compliant. If a specific AVP is frequently used by the application layer, it can be permanently cached once after being searched only once and subsequently it will be used often.
For an if statement with multiple logical conditions, the logical conditions will be ordered according to frequency of occurrence, such that the one occurring most frequently is checked first.
Functionality
The present invention provides a mechanism that enables adaptation of the internal structure of a software package or component according to variables such as installation environment, configuration, time of day, gathered historical data and statistics.
The method detailed in the present invention can use different parameters like those described above in either an on-line or off-line manner, in order to shift and adapt the different internals and structure of the software to fall in line with the configuration parameters supplied. By performing this update and using the information supplied, the functioning of the software is improved. This update may result in better performance of the software, better security and/or better memory usage.
Example 1 :
For efficiency reasons actions in the code are layered in a way that gives priority to the most used actions. Those action usage patterns and "popularity" can vary according to different times, days, scenarios and/or configurations, but the order of the actions and their layout in the code is static and stays the same.
Using the method of the invention, the code, action order and handling can be altered and dynamically adapted according to parameters such as day, time, configuration and/or statistical data.
Example 2:
In a Diameter protocol software stack implementation, checks regarding messages are preferably done in the most efficient way, which commonly gives priority to the most frequently used Diameter protocol messages and Attribute Value Pairs (AVP's). But in different network scenarios and installations, various messages are used differently according to varying patterns of repetition and amount and with different AVP's.
According to the principles of the present invention, Diameter message handling as implemented in the software can be updated and modified from one installation to the next based on network usage patterns and statistical information.
There has thus been outlined, rather broadly, the more important features of the invention in order that the detailed description thereof that follows hereinafter may be better understood. Additional details and advantages of the invention will be set forth in
the detailed description, and in part will be appreciated from the description, or may be learned by practice of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS In order to understand the invention and to see how it may be carried out in practice, a preferred embodiment will now be described, by way of non-limiting example only, with reference to the accompanying drawings, in which:
Fig. 1 is a prior art schematic block diagram, exemplifying software internals before optimization; Fig. 2 is a schematic block diagram representing high level software architecture, constructed in accordance with the principles of the present invention; and
Fig. 3 is a flow chart for optimizing the execution of stack software based on statistical analysis and implementation, constructed in accordance with the principles of the present invention.
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT Fig. 1 is a pre-optimized flow, where several conditions are checked, and each one results in a set of operations. Fig. 1 provides details of high level internals of the software used in order to demonstrate the present invention. In the example detailed in Fig. 1 software is composed of four main Actions, layered from top condition 110 being checked resulting in Action 115 being performed to condition 140 being checked resulting in bottom Action 145 being performed, as organized during software development, giving the highest priority to Action 115 over the rest of the actions. Higher priority is also given to condition 120 being checked resulting in Action 125 being performed over Action 135 and Action 145, etc. Higher priority is also given to condition 130 being checked resulting in Action 135 being performed over Action 145. The lowest priority is given to condition 140 being checked. This ordering of the Actions was done during software development to provide the best performance suitable for most common software installations and configurations, where processing continues 150 after all actions are performed.
Fig. 2 is a schematic block diagram representing high level software architecture, constructed in accordance with the principles of the present invention. Using the available statistical data, it appears that the probability of the fourth condition 140 to be fulfilled is the highest resulting in Action 145 being performed, condition 130 follows resulting in Action 135
being performed, then condition 110 resulting in Action 115 being performed and condition 120 is the most unlikely to happen resulting in Action 125 being performed. This results in the code described in Fig. 2, where the conditions are sorted by their statistical significance. Sorting the logical conditions relieves the need to test improbable conditions, where each such logical test can involve message parsing and/or other time-consuming operations. Again processing continues 150 after all actions are performed.
In the Example in Fig. 2 the information gathered is used to adapt and optimize the four main Actions to achieve higher software efficiency, giving highest priority to Action 140 and lowest priority to Action 120.
Fig. 3 is a flow chart for the automated optimizing of the execution of stack software based on statistical analysis and implementation, constructed in accordance with the principles of the present invention. The first step is to generate the original code 310. The next step is to collect statistics of usage patterns 320 and then to feed the statistics back into the system in order to proceed to recreate and optimize the code 330. Then the code is reloaded into the system and the code is regenerated 340. The system again proceeds to collect statistics of usage patterns 320 and steps 320 to 340 continue reiteratively in order to continuously provide increasingly optimum code performance.
Having described the present invention with regard to certain specific embodiments thereof, it is to be understood that the description is not meant as a limitation, since further modifications will now suggest themselves to those skilled in the art, and it is intended to cover such modifications as fall within the scope of the appended claims.
Claims
1. An automated method for optimization of stack software code comprising actions, said optimization based on statistical analysis of performance and configuration parameters, said method comprising: generating the original code; collecting statistics of usage patterns; feeding back the statistics to recreate and optimize the code; regenerating the code; reloading the regenerated code into the system; and returning to the statistics collection step, wherein the sequence of the generating, collecting, feeding back, regenerating and reloading steps are reiterated continuously, such that said method continuously provides increasingly optimum code performance.
2. The method according to claim 1, wherein said regenerated code is fully specification compliant.
3. The method according to claim 1 , wherein said regenerated code is strongly typed.
4. The method according to claim 1 , wherein said code is generated and regenerated in Java, said method further comprising generating byte code by a Java compiler.
5. The method according to claim 1 , wherein said code is generated and regenerated in C++, said method further comprising generating native code by a C++ compiler..
6. The method according to claim 1 , further comprising parsing according to three (3) levels of standards parsing: messages, definitions of Attribute-Value Pairs (AVP's) and state machines describing a life-cycle of a user session.
7. The method according to claim 6, wherein an AVP frequently used by the application layer is permanently cached once after being searched.
8. The method according to claim 1 , wherein said for an "if statement" with multiple logical conditions, the logical conditions are ordered according to frequency of occurrence, such that the one occurring most frequently is checked first.
9. The method according to claim 1, wherein said stack software is constructed of programming language code formatted into a plurality of structures.
10. The method according to claim 9, wherein said plurality of structures are layered in several levels of one of inheritance and encapsulation.
11. The method according to claim 1 , wherein said optimization of stack software based on statistical analysis of performance is provided according to Diameter Base Protocol (DBP).
12. The method according to claim 11 , wherein message handling performed according to said DBP as implemented in the stack software further comprises updating and modifying the software from one installation to the next based on network action usage patterns and statistical information.
13. The method according to claim 11 , further comprising giving priority to the most frequently used Diameter protocol messages, AVP's and state machine transitions.
14. The method according to claim 1, further comprising enabling adaptation of the internal structure of one of a software package and component according to at least one of the following variables: installation environment, configuration, date, time of day, gathered historical data and statistics.
15. The method according to claim 14, wherein said at least one variable is used in one of an on-line and off-line manner, in order to shift and adapt the different internals and structure of the software to fall in line with the configuration parameters supplied.
16. The method according to claim 1 , wherein the optimization results in at least one of better performance of the software, better security and better memory usage.
17. The method according to claim 1, wherein the code is layered in a way that gives priority to the most used of said actions.
18. The method according to claim 12, wherein said action usage patterns vary according to at least one of different times, days, scenarios and configurations, such that the order of said actions and their layout in the code stays the same.
19. The method according to claim 1, further comprising sorting of multiple outcomes of logical conditions, thereby frequently relieving the need to test improbable conditions, where each such logical testing can involve time-consuming operations.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US88072407P | 2007-01-17 | 2007-01-17 | |
US60/880,724 | 2007-01-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2008087633A2 true WO2008087633A2 (en) | 2008-07-24 |
WO2008087633A3 WO2008087633A3 (en) | 2010-01-28 |
Family
ID=39636464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IL2008/000061 WO2008087633A2 (en) | 2007-01-17 | 2008-01-15 | Method for statistics based performance optimization of regenerated code |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2008087633A2 (en) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8478828B2 (en) | 2010-02-12 | 2013-07-02 | Tekelec, Inc. | Methods, systems, and computer readable media for inter-diameter-message processor routing |
US8547908B2 (en) | 2011-03-03 | 2013-10-01 | Tekelec, Inc. | Methods, systems, and computer readable media for enriching a diameter signaling message |
US8549495B2 (en) | 2009-12-14 | 2013-10-01 | International Business Machines Corporation | Using appropriate level of code to be executed in runtime environment using metadata describing versions of resources being used by code |
US8578050B2 (en) | 2010-02-12 | 2013-11-05 | Tekelec, Inc. | Methods, systems, and computer readable media for providing peer routing at a diameter node |
US8613073B2 (en) | 2009-10-16 | 2013-12-17 | Tekelec, Inc. | Methods, systems, and computer readable media for providing diameter signaling router with firewall functionality |
US8750126B2 (en) | 2009-10-16 | 2014-06-10 | Tekelec, Inc. | Methods, systems, and computer readable media for multi-interface monitoring and correlation of diameter signaling information |
US9148388B2 (en) | 2013-05-23 | 2015-09-29 | Tekelec, Inc. | Methods, systems, and computer readable media for performing enhanced service routing |
US9537775B2 (en) | 2013-09-23 | 2017-01-03 | Oracle International Corporation | Methods, systems, and computer readable media for diameter load and overload information and virtualization |
JP2017147733A (en) * | 2012-06-11 | 2017-08-24 | テケレック・インコーポレイテッドTekelec, Inc. | Method and system for routing diameter message in diameter signaling router and computer readable medium |
US9888001B2 (en) | 2014-01-28 | 2018-02-06 | Oracle International Corporation | Methods, systems, and computer readable media for negotiating diameter capabilities |
US9935922B2 (en) | 2011-01-21 | 2018-04-03 | Tekelec, Inc. | Methods, systems, and computer readable media for screening diameter messages within a diameter signaling router (DSR) having a distributed message processor architecture |
US10027760B2 (en) | 2015-05-22 | 2018-07-17 | Oracle International Corporation | Methods, systems, and computer readable media for short and long term policy and charging rules function (PCRF) load balancing |
US10117127B2 (en) | 2015-07-08 | 2018-10-30 | Oracle International Corporation | Methods, systems, and computer readable media for communicating radio access network congestion status information for large numbers of users |
US11102246B2 (en) | 2015-10-22 | 2021-08-24 | Versafe Ltd. | Methods for hypertext markup language (HTML) input field obfuscation and devices thereof |
US11658995B1 (en) | 2018-03-20 | 2023-05-23 | F5, Inc. | Methods for dynamically mitigating network attacks and devices thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006033A (en) * | 1994-08-15 | 1999-12-21 | International Business Machines Corporation | Method and system for reordering the instructions of a computer program to optimize its execution |
US6016512A (en) * | 1997-11-20 | 2000-01-18 | Telcordia Technologies, Inc. | Enhanced domain name service using a most frequently used domain names table and a validity code table |
US6971091B1 (en) * | 2000-11-01 | 2005-11-29 | International Business Machines Corporation | System and method for adaptively optimizing program execution by sampling at selected program points |
-
2008
- 2008-01-15 WO PCT/IL2008/000061 patent/WO2008087633A2/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006033A (en) * | 1994-08-15 | 1999-12-21 | International Business Machines Corporation | Method and system for reordering the instructions of a computer program to optimize its execution |
US6016512A (en) * | 1997-11-20 | 2000-01-18 | Telcordia Technologies, Inc. | Enhanced domain name service using a most frequently used domain names table and a validity code table |
US6971091B1 (en) * | 2000-11-01 | 2005-11-29 | International Business Machines Corporation | System and method for adaptively optimizing program execution by sampling at selected program points |
Non-Patent Citations (1)
Title |
---|
FAJARDO: 'Open Diameter Software Architecture', [Online] June 2004, pages 1,3 - 7 Retrieved from the Internet: <URL:http://diameter.sourceforge.net/diameter-architecture/index.html> * |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8613073B2 (en) | 2009-10-16 | 2013-12-17 | Tekelec, Inc. | Methods, systems, and computer readable media for providing diameter signaling router with firewall functionality |
US9647986B2 (en) | 2009-10-16 | 2017-05-09 | Tekelec, Inc. | Methods, systems, and computer readable media for providing diameter signaling router with firewall functionality |
US8958306B2 (en) | 2009-10-16 | 2015-02-17 | Tekelec, Inc. | Methods, systems, and computer readable media for providing diameter signaling router with integrated monitoring functionality |
US8750126B2 (en) | 2009-10-16 | 2014-06-10 | Tekelec, Inc. | Methods, systems, and computer readable media for multi-interface monitoring and correlation of diameter signaling information |
US8549495B2 (en) | 2009-12-14 | 2013-10-01 | International Business Machines Corporation | Using appropriate level of code to be executed in runtime environment using metadata describing versions of resources being used by code |
US8627298B2 (en) | 2009-12-14 | 2014-01-07 | International Business Machines Corporation | Using appropriate level of code to be executed in runtime environment using metadata describing versions of resources being used by code |
US8498202B2 (en) | 2010-02-12 | 2013-07-30 | Tekelec, Inc. | Methods, systems, and computer readable media for diameter network management |
US8601073B2 (en) | 2010-02-12 | 2013-12-03 | Tekelec, Inc. | Methods, systems, and computer readable media for source peer capacity-based diameter load sharing |
US8995256B2 (en) | 2010-02-12 | 2015-03-31 | Tekelec, Inc. | Methods, systems, and computer readable media for performing diameter answer message-based network management at a diameter signaling router (DSR) |
US8578050B2 (en) | 2010-02-12 | 2013-11-05 | Tekelec, Inc. | Methods, systems, and computer readable media for providing peer routing at a diameter node |
US8996636B2 (en) | 2010-02-12 | 2015-03-31 | Tekelec, Inc. | Methods, systems, and computer readable media for answer-based routing of diameter request messages |
US8527598B2 (en) | 2010-02-12 | 2013-09-03 | Tekelec, Inc. | Methods, systems, and computer readable media for answer-based routing of diameter request messages |
US8483233B2 (en) | 2010-02-12 | 2013-07-09 | Tekelec, Inc. | Methods, systems, and computer readable media for providing local application routing at a diameter node |
US9088478B2 (en) | 2010-02-12 | 2015-07-21 | Tekelec, Inc. | Methods, systems, and computer readable media for inter-message processor status sharing |
US8504630B2 (en) | 2010-02-12 | 2013-08-06 | Tekelec, Inc. | Methods, systems, and computer readable media for diameter application loop prevention |
US8792329B2 (en) | 2010-02-12 | 2014-07-29 | Tekelec, Inc. | Methods, systems, and computer readable media for performing diameter answer message-based network management at a diameter signaling router (DSR) |
US8799391B2 (en) | 2010-02-12 | 2014-08-05 | Tekelec, Inc. | Methods, systems, and computer readable media for inter-diameter-message processor routing |
US8532110B2 (en) | 2010-02-12 | 2013-09-10 | Tekelec, Inc. | Methods, systems, and computer readable media for diameter protocol harmonization |
US8554928B2 (en) | 2010-02-12 | 2013-10-08 | Tekelec, Inc. | Methods, systems, and computer readable media for providing origin routing at a diameter node |
US8478828B2 (en) | 2010-02-12 | 2013-07-02 | Tekelec, Inc. | Methods, systems, and computer readable media for inter-diameter-message processor routing |
US8644324B2 (en) | 2010-02-12 | 2014-02-04 | Tekelec, Inc. | Methods, systems, and computer readable media for providing priority routing at a diameter node |
US9935922B2 (en) | 2011-01-21 | 2018-04-03 | Tekelec, Inc. | Methods, systems, and computer readable media for screening diameter messages within a diameter signaling router (DSR) having a distributed message processor architecture |
US8547908B2 (en) | 2011-03-03 | 2013-10-01 | Tekelec, Inc. | Methods, systems, and computer readable media for enriching a diameter signaling message |
JP2017147733A (en) * | 2012-06-11 | 2017-08-24 | テケレック・インコーポレイテッドTekelec, Inc. | Method and system for routing diameter message in diameter signaling router and computer readable medium |
US9148388B2 (en) | 2013-05-23 | 2015-09-29 | Tekelec, Inc. | Methods, systems, and computer readable media for performing enhanced service routing |
US9537775B2 (en) | 2013-09-23 | 2017-01-03 | Oracle International Corporation | Methods, systems, and computer readable media for diameter load and overload information and virtualization |
US9888001B2 (en) | 2014-01-28 | 2018-02-06 | Oracle International Corporation | Methods, systems, and computer readable media for negotiating diameter capabilities |
US10027760B2 (en) | 2015-05-22 | 2018-07-17 | Oracle International Corporation | Methods, systems, and computer readable media for short and long term policy and charging rules function (PCRF) load balancing |
US10117127B2 (en) | 2015-07-08 | 2018-10-30 | Oracle International Corporation | Methods, systems, and computer readable media for communicating radio access network congestion status information for large numbers of users |
US11102246B2 (en) | 2015-10-22 | 2021-08-24 | Versafe Ltd. | Methods for hypertext markup language (HTML) input field obfuscation and devices thereof |
US11658995B1 (en) | 2018-03-20 | 2023-05-23 | F5, Inc. | Methods for dynamically mitigating network attacks and devices thereof |
Also Published As
Publication number | Publication date |
---|---|
WO2008087633A3 (en) | 2010-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2008087633A2 (en) | Method for statistics based performance optimization of regenerated code | |
JP7252356B2 (en) | MOBILE EDGE COMPUTING NODE SELECTION METHOD, APPARATUS AND SYSTEM AND COMPUTER PROGRAM | |
RU2436148C2 (en) | Adaptive gateway for switching transactions and data on untrusted networks using context-based rules | |
EP2321937B1 (en) | Load balancing for services | |
CN103634138B (en) | The remotely management of distributed scheduling and O&M method and system thereof | |
US20140143375A1 (en) | Methods for optimizing service of content requests and devices thereof | |
CN104054067A (en) | Frameworks and interfaces for offload device-based packet processing | |
WO2023011274A1 (en) | Communication protocol conversion method, and device, system, and gateway device | |
US11146658B2 (en) | Enhanced self-assembling and self-configuring microservices | |
CN108737471B (en) | Network access method and device | |
Bremler-Barr et al. | Openbox: Enabling innovation in middlebox applications | |
CN114500537A (en) | Access method, system, storage medium and electronic device of container service | |
Zhang et al. | Fast switch-based load balancer considering application server states | |
CN106131162B (en) | A method of network service agent is realized based on IOCP mechanism | |
Zulfiqar et al. | The Slow Path Needs an Accelerator Too! | |
Györgyi et al. | P4rrot: Generating p4 code for the application layer | |
US20050108397A1 (en) | Reducing number of messages processed by control processor by bundling control and data messages and offloading the TCP connection setup and termination messages | |
WO2021092448A1 (en) | Managing shared applications at the edge of a content delivery network | |
US11729167B2 (en) | Authorization proxy | |
Aguiar et al. | Lessons learned and challenges on benchmarking publish-subscribe IoT platforms | |
US20220311791A1 (en) | Systems and methods for low latency stateful threat detection and mitigation | |
US8499023B1 (en) | Servlet-based grid computing environment using grid engines and switches to manage resources | |
US8606960B2 (en) | Method and apparatus for improving packet processing | |
CN114745260B (en) | Method, device, equipment and storage medium for enhancing computing power of content distribution network | |
CN113220491B (en) | Remote call self-adaptive load balancing method, device and system and computer equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08702642 Country of ref document: EP Kind code of ref document: A2 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 08702642 Country of ref document: EP Kind code of ref document: A2 |