摘要:
Data layout optimization arranges data members within memory to enhance software performance. Profiling data is consulted to determine how to group data members for an object class into groups. One technique groups the data members based on how frequently the data members are referenced in memory. Another technique groups the data members based on their affinities for one another in time as determined by observing when references to the data members take place. A variety of options when collecting the profiling data and grouping the data members is supported. The data member grouping is recorded in metadata associated with a definition of the object class. At runtime, a class loader places the data members of an object in memory according to the metadata. Data members of different groups can be placed in separately-loadable units of memory in the memory system. Subsequently, when the data members are referenced in memory, more frequently referenced data members, including those that tend to be referenced at times close to each other, reside at neighboring locations in the memory system.
摘要:
Data layout optimization arranges data members within memory to enhance software performance. Profiling data is consulted to determine how to group data members for an object class into groups. One technique groups the data members based on how frequently the data members are referenced in memory. Another technique groups the data members based on their affinities for one another in time as determined by observing when references to the data members take place. A variety of options when collecting the profiling data and grouping the data members is supported. The data member grouping is recorded in metadata associated with a definition of the object class. At runtime, a class loader places the data members of an object in memory according to the metadata. Data members of different groups can be placed in separately-loadable units of memory in the memory system. Subsequently, when the data members are referenced in memory, more frequently referenced data members, including those that tend to be referenced at times close to each other, reside at neighboring locations in the memory system.
摘要:
Data layout optimization arranges data members within memory to enhance software performance. Profiling data is consulted to determine how to group data members for an object class into groups. One technique groups the data members based on how frequently the data members are referenced in memory. Another technique groups the data members based on their affinities for one another in time as determined by observing when references to the data members take place. A variety of options when collecting the profiling data and grouping the data members is supported. The data member grouping is recorded in metadata associated with a definition of the object class. At runtime, a class loader places the data members of an object in memory according to the metadata. Data members of different groups can be placed in separately-loadable units of memory in the memory system. Subsequently, when the data members are referenced in memory, more frequently referenced data members, including those that tend to be referenced at times close to each other, reside at neighboring locations in the memory system.
摘要:
Touch modes are described. In one or more implementations, a first mode of interaction is supported with a user interface displayed by a display device of a computing device having touchscreen functionality, the first mode usable to interact directly with a user interface using the touchscreen functionality. A second mode of interaction is supported with the user interface displayed by the display device of the computing device, the second mode usable to control a cursor using the touchscreen functionality to interact with the user interface.
摘要:
Systems and methods that enhance and balance a late binding and an early binding in a programming language, via supplying an option component to opt-in (or opt-out) late binding, and wherein a late binding is triggered based on a static type for the variable (e.g., object or a type/string.) Additionally, the variable is enabled to have different static types at different regions (e.g., a program fragment) of the programming language.
摘要:
The use of a data structure that is a symbolic representation of a keyed array that has an array variable and an associated key variable. There is a correlation maintained between the variable type of the array variable and the corresponding keying set that is to be bound to the associated key variable. The keyed array may remain unbound thereby being simply symbolically represented, or the keying set may be bound to the key variable more immediately. In one embodiment, once the keying set is bound to the key variable, data may be bound to the array variable itself. This may be repeated for multiple keyed arrays. The data from multiple keyed arrays may be operated upon to about another array of values, which may then be aggregated in some way.
摘要:
Architecture that embeds a server (a local server) inside a mobile device operating system (OS) close to the data (but under the OS services) such that the server has access to native capabilities, and offers an Internet-like frontend with which a browser or application can communicate. The local server appears as a web server, and small programs can be pushed into the local server from the browser or a remote server such that the local server can be made to perform work more effectively. Local and remote events can be triggered such as launching a browser (or other application(s)), initiating remote server calls, triggering battery save mode, locking the phone, etc. The local server can run a script execution environment such as node.js, an event driven I/O model where callbacks are invoked to handle emergent conditions (e.g., explicit requests, state changes, etc.).
摘要:
The inference of a dependency graph that represents a graph of solves that leads from input model parameter(s) to output model parameters using analytics. In one embodiment, the dependency graph is part of visually driven analytics in which the output model parameter(s) are used to formulate data-drive scenes. As the identity of the input and/or output model parameter(s) change, or as the analytics themselves change, the dependency graph may also change. This might trigger a resolve of the analytics. In one embodiment, the intermediate parameters involved in the dependency graph may be viewed and evaluated by the user.
摘要:
Solving for output variable(s) of a model that includes multiple analytically related model variables. The identity of the output model variables and the analytical relationships between the model variables are separately designated. Regardless of the identity of the output variable(s), a solver framework interprets the analytical relationships and solves for the designated output variable(s). The output model variable(s) may be designated separately than the analytical relationships themselves. By simply changing the designation of the output model variable(s), the analytical relationships are reevaluated, and the output variable(s) are solved for. The solver framework itself stays the same regardless of the identity of the output model variable(s).
摘要:
An application defined by expressions whose execution may be dynamically distributed over multiple devices. An application defined by expressions may include a number of expressions that provide a symbolic representation of computations to be performed. The application defined by expressions may have input variables and output variables and provide a solution for the output variables using the input variables and the expressions that define the application. In providing a solution for the output variables, an expression engine may determine dependencies for the expressions to be solved and distribute the solution of some of those expressions dynamically at runtime to other devices based on the capabilities of the devices, privacy and security concerns, communications bandwidth and latency, the resources available to devices, and commercial or cost implications of where the processing is done.