USRE38865E1 - System and method for optimizing computer software and hardware - Google Patents

System and method for optimizing computer software and hardware Download PDF

Info

Publication number
USRE38865E1
USRE38865E1 US10/141,383 US14138302A USRE38865E US RE38865 E1 USRE38865 E1 US RE38865E1 US 14138302 A US14138302 A US 14138302A US RE38865 E USRE38865 E US RE38865E
Authority
US
United States
Prior art keywords
recited
computer system
program
performance
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US10/141,383
Inventor
Daniel Peter Dumarot
David Alan Stevenson
Nicolas Richard Dono
James Randall Moulic
Clifford Alan Pickover
Bengt-Olaf Schneider
Adelbert Smith
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Activision Publishing Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22026878&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=USRE38865(E1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US10/141,383 priority Critical patent/USRE38865E1/en
Application granted granted Critical
Publication of USRE38865E1 publication Critical patent/USRE38865E1/en
Assigned to ACTIVISION PUBLISHING, INC. reassignment ACTIVISION PUBLISHING, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INTERNATIONAL BUSINESS MACHINES CORPORATION
Assigned to BANK OF AMERICA, N.A. reassignment BANK OF AMERICA, N.A. SECURITY AGREEMENT Assignors: ACTIVISION PUBLISHING, INC.
Assigned to BLIZZARD ENTERTAINMENT, INC., ACTIVISION PUBLISHING, INC., ACTIVISION BLIZZARD INC., ACTIVISION ENTERTAINMENT HOLDINGS, INC. reassignment BLIZZARD ENTERTAINMENT, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: BANK OF AMERICA, N.A.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/919Designing, planning, programming, CAD, CASE
    • Y10S706/922Computer program preparation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • Y10S715/966Computer process, e.g. operation of computer
    • Y10S715/967Visual or iconic programming

Definitions

  • This invention relates to the optimization of computer software and hardware, and in particular to optimization according to user-specified preferences, databases, and dynamic monitoring of system behavior and performance.
  • Computer operating systems include a large number of parameters, many of which may be queried, controlled, and changed in order to alter the characteristics of the computer system.
  • software applications running on computer systems also often include a large number of parameters, many of which may be controlled and changed to alter the characteristics of the application running on the computer system.
  • the resolution and color characteristics of the computer system's display may be changed by selecting the “Control Panel” icon from a “Settings” menu item.
  • the control panel is displayed, a user is presented with a set of new icons, one of which (“Display Properties”) may be selected to bring up another panel containing a set of tabs.
  • the “Settings” tab on the “Display Properties” panel may be selected which allows a user to manually change the number of colors, resolution, video refresh rate, font size, and related graphical characteristics.
  • the user specifies the refresh frequency by selecting from a pull-down menu list of available settings (e.g. 60 Hz, 70 Hz, etc.).
  • the user can specify the screen resolution by selecting a slider icon and moving it right or left to increase or decrease the screen resolution (e.g., from 1024 ⁇ 1280 pixels to 600 ⁇ 800 pixels).
  • Some of these settings may affect the performance of applications running on the system. For example, decreasing the color resolution and screen resolution may increase the speed of some graphics applications.
  • the computer system 12 includes a computer 36 , a computer display 38 , a keyboard 40 , and multiple input pointing devices 42 .
  • input pointing devices may be implemented utilizing a pointing stick 44 , a mouse 46 , a track ball 48 , a pen 50 , display screen 52 (e.g. a touch display screen 52 ), or any other device that permits a user to manipulate objects, icons, and other display items in a graphical manner on the computer display 38 .
  • Connected to the computer system may also be audio speakers 54 and/or audio input devices 51 .
  • a graphical user interface may be displayed on screen 52 and manipulated using any input pointing device 42 .
  • This graphical user interface may include display of an application 60 that displays information pages 62 using any known browser.
  • the information pages may include graphical, audio, or text information 67 presented to the user via the display screen 52 , speakers 54 , or other output device.
  • the information pages may contain selectable links 66 to other information pages, where such links can be activated by one of the input devices, like mouse 46 , to request the associated information pages.
  • This hardware is well known in the art and is also used in conjunction with televisions (“web TV”) and multimedia entertainment centers.
  • the system 12 contains one or more memories (See 65 of FIG. 2. ) where a remote computer 130 , connected to the system 12 through a network 110 , can send information.
  • the network can be any known (public or privately available) local area network (LAN) or wide area network (WAN), e.g., the Internet.
  • the display may be controlled by a graphics adaptor card such as an Intergraph Intense 3D,
  • GUIs Graphical user interfaces
  • available applications and data sets are often represented by icons 63 consisting of small graphical representations which can be selected by a user and moved on the screen.
  • the data sets (including pages of information) and applications may reside on the local computer or on a remote computer accessed over a network.
  • the selection of icons often takes the place of typing in a command using a keyboard in order to initiate a program or access a data set.
  • icons are tiny on-screen symbols that simplify access to a program, command, or data file. Icons are often activated or selected by moving a mouse-controlled cursor onto the icon and pressing one or more times on a mouse button.
  • GUIs include graphical images on computer monitors and often consist of both icons and windows.
  • GUIs may also reside on the screens of televisions, kiosks, personal digital assistants (PDAs), automatic teller machines (AIMs), and on other devices and appliances such as ovens, cameras, video recorders and instrument consoles.
  • PDAs personal digital assistants
  • AIMs automatic teller machines
  • a computer window is a portion of the graphical image that appears on the monitor and is dedicated to some specific purpose. Windows allow the user to treat the graphical images on the computer monitor like a desktop where various files can remain open simultaneously. The user can control the size, shape, and position of the windows.
  • GUIs Although the use of GUls with icons usually simplifies a user's interactions with a computer, GUIs are often tedious and frustrating to use. Icons must be maintained in a logical manner. It is difficult to organize windows and icons when many are similarly displayed at the same time on a single device.
  • icons are selected 64 and moved 68 (i.e. “dragged”) to a target icon 69 to achieve a desired effect.
  • an icon representing a computer file stored on disk may be dragged over an icon containing an image of a printer in order to print the file, or dragged over an icon of a trash can to delete the file.
  • An icon representing a page of information on the World Wide Web may be selected and dragged to a trash can to delete the link to the page of information.
  • the page of information may be on the local machine or on a remote machine.
  • a typical user's screen contains many icons, and only a subset of them will at anyone time be valid, useful targets for a selected icon. For example, it would not be useful to drag the icon representing a data file on top of an icon whose only purpose is to access an unrelated multimedia application.
  • Icons 63 could include static or animated graphics, text, multimedia presentations, and windows displaying TV broadcasts. Icons 63 could also include three dimensional images, for example, those used in virtual reality applications.
  • An object of this invention is a method and system for increasing the apparent speed of a computer by automatically optimizing software and hardware according to user-specified preferences.
  • Another object of this invention is to provide a method and system for increasing the apparent speed of a computer using a database.
  • Yet another object of this invention is to provide a method and system for effectively increasing the apparent speed of a computer based on results obtained by dynamically monitoring system behavior and performance.
  • This invention permits users to conveniently optimize software running on a computer.
  • the term “optimize” refers to running of a computer system or software more efficiently, for example, by maximizing both the speed with which a software application runs and user satisfaction, and/or minimizing cost or resource use. “Optimization” includes the setting of various parameters in hardware, operating system software, or application software such that the system as a whole runs as efficiently as possible. These parameters might be set to optimize speed, system resource cost, or other variables corresponding to a user's satisfaction.
  • this invention provides for a method of enhancing, for example, program application performance on a computer system.
  • configuration information and performance capabilities based on characteristics of the program/system are determined.
  • the configuration information and the performance capabilities are used to optimize configuration parameters of the program applications so as to enhance the performance of the workstation in running the program'system.
  • user preferences in the operation of the program are selected by, for example, dragging rule icons to a target optimizer icon to provide user selected rules of operation of the application program.
  • FIG. 1 depicts a pictorial representation of an example computer system that embodies the present invention.
  • FIG. 2 is a block diagram of the computer system architecture showing an optimization database.
  • FIG. 3 is a block diagram showing portions of a computer network wherein a local computer and a remote computer are both connected directly to the network.
  • FIG. 4 are example database records that may be used for optimization.
  • FIG. 5 is a flow chart depicting the steps performed in the optimization.
  • FIG. 6 is a schematic illustration display with an optimizer and rule icons thereon.
  • FIG. 7 is a flow chart showing the steps of one preferred method of the present invention pertaining to the use of iconic rules.
  • FIG. 2 there is illustrated a block diagram of the architecture of the computer system 12 in accordance with the present invention.
  • the core architecture includes a Central Processing Unit 165 , memory controller 162 , system memory 65 , disk storage 70 , disk storage controller 75 , and graphics subsystem 166 .
  • the computer system 12 can be either a stand alone workstation or a server and a workstation connected to each other via a communications network such as the internet.
  • a portion of the system memory is set aside for an optimizer-database cache 80 .
  • file space 85 on the disk storage unit 70 may be set aside for the optimizer database 140 .
  • a cache or buffer is a place where data (files, images, and other information) can be stored to avoid having to read the data from a slower device, such as a remote, network-attached computer disk.
  • a disk cache can store information that can be read without accessing remote disk storage.
  • Computer system 12 connects to the network backbone 110 by means of a connecting device 100 .
  • a connecting device 100 Also connected to the network 110 are one or more server computers 130 by means of their own connecting device 100 ′.
  • These connecting devices 100 may take various forms, including modems, token-ring hubs, and other network-enabling devices depending on the capabilities and technology of the connecting devices.
  • the remote computer 130 may include an area of system memory and/or disk storage space dedicated to storing and maintaining a optimization database table 140 (e.g. data file).
  • the optimization database table 140 may reside on the local client or reside on both the client and remote computer.
  • the optimizer program 136 may reside on the local computer and/or the remote computer.
  • the optimizer program contains or accesses a dynamic monitor 137 of system and application activity.
  • Various user applications 138 run on the remote or local computer. For example, these applications may be office productivity, scientific and engineering, finance, transaction processing, Internet, or any other software a user needs to run. Such applications may be controlled by a configuration file 141 or a central database that controls particular settings of the application that may affect application performance.
  • the optimizer program 136 may contain a graphical user interface 139 , used to specify settings or provide information to the user.
  • An operating system 150 runs on the local computer.
  • the operating system such as Windows NT, primarily provides an interface between the user application and the computer hardware.
  • the operating system also provides services on behalf of the user and applications such as networking, file management, etc.
  • FIG. 4 includes example records 430 for optimizing system performance.
  • the set of records comprise the database 140 .
  • Application settings 420 may consist of a set of control parameters A 1 , A 2 , . . . , AN shown in this example in rows 430 and associated with a particular unique identifier 410 for a software application.
  • the software application may be designated in the database 140 as an alphanumeric string 410 .
  • parameter A 1 may control the graphical quality of an engineering application's 3-D graphics. Lower graphical quality often implies faster use of an application.
  • System settings 440 contain information usually relating to static qualities of the computer system such as the particular operating system, amount of memory, processor speed, graphics card name, and bios version. These values S 1 , S 2 , . .
  • Dynamic data 460 may contain current or prior reports of system behavior or performance.
  • the dynamic data is generally dynamic information, such as current CPU, memory, and disk use, all of which change as an application performs operations, and reads and writes information to memory and disk.
  • the values M 1 , M 2 , M 3 . . . for this dynamic data 460 may be obtained by a monitor program 137 which, for example, scans the system for CPU, memory, and disk use at specific increments of time.
  • Suggestions 480 consist of alphanumeric information (R 1 , R 2 , R 3 , . . .
  • the optimizer program 136 may scan a row or record 430 of database 400 to optimize a single, particular application, or it might join the results of numerous rows to optimize for a set of concurrently running applications designated by identifiers 410 .
  • parameters A 1 , A 2 , A 3 . . . control application settings.
  • Parameters S 1 , S 2 , S 3 . . . control system settings.
  • Parameters M 1 , M 2 , M 3 . . . control dynamic settings.
  • Parameters R 1 , R 2 , R 3 . . . are recommendations.
  • FIG. 5 comprises a flow chart for an optimization process 300 that the local computer 12 or server 130 uses to optimize software applications 138 and system response or utilization, or to provide recommendations 480 .
  • the optimizer 136 gathers relevant system information including: operating system 150 version and release data, installed hardware components, hardware configuration, and software configurations. For example, the optimizer determines the size of RAM, BIOS level, installed options etc. This information gathering can be accomplished using standard operating system or other commands. For example, on Microsoft's Windows NT operating system, the “Winmsd/f” calls, the Win32 API, queries to the system registry, and other methods known to those skilled in the art, allow the optimizer to collect such information.
  • the optimizer 136 gathers relevant application information, for example, release version, installed options, etc.
  • the optimizer 136 reads records 430 from database 140 , that control various parameters 420 , associated with a particular application name 410 .
  • the database 140 may reside on a remote computer or server 130 accessed over a network 110 or on the local computer 12 .
  • the optimizer 136 monitors system 12 behavior.
  • the optimizer may query the current CPU use, memory use, or other activity 321 using operating system commands known to those skilled in the art.
  • a monitor program 137 may use such commands to monitor such activity.
  • This monitor program 137 may contain a graphical user interface 139 that displays such activity in graphical form, such as with bar graphs, pie carts, numerical indicators, gauges, etc.
  • This activity 321 may be stored in the form of dynamic values M 1 , M 2 , . . . , MN in settings 460 and read by the optimizer program 136 .
  • the values corresponding to system activity/use may be directly obtained using operating system commands.
  • the optimizer 136 may compare current to past system activity. In this step 320 , the optimizer also may perform performance measurements to “benchmark” the system by running built-in test routines. For example, the optimizer may time the rotation of a 3-D graphical object to assess the speed of the graphics subsystem 166 .
  • the optimizer 136 reads user input.
  • the user may enter text or data at the keyboard 40 (or with various input devices 46 , 48 , 50 , or by voice input using audio input device 51 ) that specifies a level of optimization 326 .
  • This level of optimization may control which of the application settings 420 are used to optimize the application in step 330 or optimize the system 12 in step 340 .
  • a user wishing to have maximum performance may, for example, sacrifice graphic quality controlled in applications settings 420 , that are generally read upon invocation of application 138 .
  • the optimizer 136 can adjust the following parameter settings 420 , in the Unigraphics control file to adjust performance. (Unigraphics is an graphically-intensive engineering application created by EDS.) The values for each of these settings may be determined in step 325 and stored in record 430 .
  • “Low Performance” is generally correlated with higher graphical quality.
  • the “level” of optimization 326 may correspond to the number of “high performance” settings selected. For example, highest performance (highest level of optimization) may correspond to the use of all the settings in their high performance states. Lower levels of optimization correspond to fewer of the high-performance settings being used. Those values that constitute high performance settings may be stored in application settings 420 .
  • the optimizer also optimizes system settings 440 .
  • system settings are settings independent of applications and generally associated with the computer or its hardware or software components.
  • the graphics card may have general settings that control the resolution, color depth, synchronization on vertical refresh, and other features.
  • the disk may have a fragmentation state which may be altered. The size of “swap” spaces may be specified.
  • system settings are sometimes stored in the system registry or in initialization files which may be modified using methods known to those skilled in the art.
  • a graphical user interface 139 may be used to provide input data.
  • a graphical depiction of a slider may be used to control the program optimization level by causing the optimizer 136 to optimize 330 the application by writing discrete records in an application configuration file 141 stored on disk. See step 330 .
  • Such a file as the configuration file 141 is typically read by an application when the application starts and controls various performance characteristics of a particular application.
  • the audio input device 51 also permits speech input in step 325 .
  • the optimizer uses the information acquired in steps 303 , 305 , 310 , 320 , and 325 to adjust system or application parameters in order to optimize the operation of the application.
  • the ensemble of data from 310 , 320 , and 325 may cause the optimizer to not only specify settings to the application but also to the graphics card, or system to alter the speed of the application.
  • the optimizer adjusts system and application settings to best meet user-specified quality/performance trade-offs.
  • the information gathered in steps 303 , 305 , and 320 may be stored in the database 140 maintained by the optimizer. The database can be helpful in determining changes to system and application configurations at different points in time, in evaluating the effects of changing application settings, and in comparing actual system/application settings with recommended settings.
  • the optimizer 136 may provide suggestions or recommendations 480 , for example, in the form of specific text that is output to the user. This output may appear in the optimizer's graphical user interface 139 , in a web browser 90 , or as audible sound played through speakers 54 another audio output device. These recommendations may be used to warn the user of various conditions (e.g. “disk space is low”), or give suggestions on how to improve performance (e.g. “purchase more memory”).
  • the optimizer contains rules 331 , 341 , 351 that it uses to make such optimizations 330 , 340 and recommendations 350 .
  • S 1 corresponds to the processor frequency
  • M 1 corresponds to the percentage of memory used.
  • a rule may consist of a set of conditionals and Boolean operations (e.g. if A and B are true and C is false then make suggestions and take action).
  • the suggestions 480 , entire records 430 , and rules 331 , 341 , 351 may be segregated into different files in database 400 , stored at a local machine 12 or remote machine 130 .
  • Users may view ( 360 ) the rules 331 , 341 , 350 , records 430 , and suggestions 480 using graphical user interface 53 , which may visually segregate these items based on origin of the suggestions (e.g. companies, individuals, etc.), severity, date, or other criteria.
  • These rules and suggestions may be web accessible (using network 110 ) for dynamic optimization across the web using a propriety program product at the web server.
  • the rules 331 , 341 , 351 may also be represented as icons 63 displayed on the graphics screen. (These icons representing rules are hereafter sometimes referred to as “iconic rules”.) Particular rules may be selected 64 from a set of available rules by the user and dragged 68 to an icon 69 representing the optimizer 136 so that the optimizer will implement 330 , 340 , 350 the rules. Additionally, the rules 331 , 341 , 351 may require password protection so that only certain users or classes of users have permission to implement the rules. In an example scenario, a user drags 68 an iconic rule 63 to optimizer icon 69 .
  • This rule may require that the graphical quality be degraded for a model part if the model part consists of greater than 100,000 triangular facets. (This will enhance the display speed of the model part.)
  • the user drops the iconic rule on the optimizer icon, the user must enter a password (e.g. consisting of a keyboard entry, speech input, mouse swipes, a sequence of mouse key presses, a secret position on the optimizer icon, or by other means) before the rule is acted upon in steps 330 , 340 , or 350 .
  • the rules are dragged to a region 70 of the screen and not to the optimizer icon in order for the rules to take effect.
  • Password protection may be useful in a variety of situations, for example, if certain rules are being tested by developers and administrators or if certain rules cause actions that should be restricted (e.g. access to confidential databases, CPU or cost-intensive jobs, the allocation of e-money and credit information, etc.)
  • the optimizer in steps 330 , 340 and 350 may learn 370 from a user's past activity. For example, if the user has always used an application with small files, and past CPU use has always been low (e.g. as stored in settings 470 ), the software optimizer can make suggestions ( 480 ), accordingly.
  • the software optimizer can make suggestions ( 480 ), accordingly.
  • portions of the database 140 e.g. the settings and suggestions
  • rules 331 , 341 , and 351 on a remote machine 130 is that a company or system administrator can continually manage and update messages and rules as new information is provided by application vendors. When a user runs an application in 410 , the user can make use of the latest information in the database.
  • the optimization 330 , 340 , and 350 can be performed either on the local machine or the remote machine. If performed on a remote machine, messages and other parameters are fed from the remote server 130 to the client 12 using the network 110 .
  • FIG. 6 is a block diagram of a GUI 591 with rule icons 540 , 63 (See FIG. 1. ) including optimizer icons 69 , 510 , 511 .
  • the user uses a selection device such as mouse 46 to select 512 an icon 540 and drags 550 the icon to optimizer icons 510 , 511 .
  • the icon 540 representing a rule
  • the rule 541 , 331 , 341 , 351 is applied.
  • “closeness” of an icon is determined by computing the distances from the selected icon 540 to regions 520 of the optimizer icon displayed on the GUI. If the distance is smaller than a particular threshold 592 , the icon 540 is close to a region of the optimizer.
  • the optimizer icon 510 consists of different regions 520 to which iconic rules 540 are dragged.
  • the optimizer software determines near what location 520 icon is positioned using techniques which are well known to those skilled in the art of GUI interfaces.
  • the optimizer icons 510 may be used to specify the ‘nature’ of the update; for example, one optimizer icon 510 may be specified for optimization concerning graphics, while another icon 511 may be specific for controlling all aspects of memory and disk space.
  • the optimizer icon may change its graphical attribute such as color or brightness 570 in response to the information gained when the optimizer software applies the rules 541 . For example, once a rule is successfully applied, then the optimizer region 520 may turn red 570 .
  • the iconic rules 541 may also change graphical attributes in a similar manner. (Changes in graphical characteristics of the iconic rules and optimizer icons are carried out in step 670 in FIG. 7 ).
  • the rule application can be carried out by the optimizer software by comparing the position 585 of icon 540 to values stored in a position file 596 which may be stored on disk.
  • the optimizer icon 510 may also contain graphical indications of regions 520 , such as cutouts 530 , to which iconic rules 540 may be dragged. In this manner, when the icons are placed in the optimizer icon 510 there can be a graphical indication 551 of the binding to the user. Additionally, the area around the cutout may change color or brightness 570 once an icon 540 is located in the cutout.
  • the use of discrete cutouts 530 may be useful when only a limited number of rules may be used. The rules may be evident to the user by text 560 written on the optimizer icon or by colors 570 .
  • FIG. 7 is a flow chart 600 showing the steps 600 performed for a preferred version of optimizer 163 executed by the system in FIG. 1 .
  • a program checks if an icon 540 (e.g., if an iconic rule) is selected.
  • the selected icon 540 may be selected by any selection method: e.g., pointing and clicking or by an application program If the icon is moved 620 , its new location is determined 630 . If the icon is near (within a threshold distance 590 from) an optimizer region 520 (step 640 ), then a visual indication 650 of placement such as changing color or brightness 570 of a region 520 optionally may be given. As stated in the description of FIG.
  • the region 520 may be graphically depicted as cutouts 530 to help give users a graphical (visual) indication of the placement.
  • “nearness” or “closeness” is determined by computing the distances from the selected icon to all optimizer icons regions 520 on the GUI. In one preferred embodiment, distances are computed using known geometrical methods. For example, if (x 1 ,y 1 ) are the coordinates of an icon 540 and (x 2 ,y 2 ) are the coordinates of a region 520 , then the distance is d-sqrt ((x 2 ⁇ x 1 )**2+(y 2 ⁇ y 1 )**2). This formula may be extended to include additional variables for higher dimensional spaces, such as in a virtual reality or three-dimensional environment.
  • An optimizer table (file) 596 on disk may store the x,y locations of regions 520 .
  • the rule 541 represented by an icon 540 is applied 660 .
  • the icon 540 or optimizer icon 510 optionally may change color, brightness, texture, blink rate, shape, size, or other graphical attribute (see step 670 ).
  • This graphical attribute may be a function of the nature of the rule. For example, an iconic rule that increases graphics quality may be red. An icon representing a rule that decreases graphics quality may be green.
  • the optimizer icon may change colors when the rule is successfully applied or has a beneficial effect.

Abstract

A method of optimizing the operation of a computer system in running application programs in accordance with system capabilities, user preferences and configuration parameters of the application program. More specifically, with this invention, an optimizing program gathers information on the system capabilities, user preferences and configuration parameters of the application program to maximize the operation of the application program or computer system. Further, user selected rules of operation can be selected by dragging rule icons to target optimizer icon.

Description

TECHNICAL FIELD
This invention relates to the optimization of computer software and hardware, and in particular to optimization according to user-specified preferences, databases, and dynamic monitoring of system behavior and performance.
BACKGROUND OF THE INVENTION
Computer operating systems include a large number of parameters, many of which may be queried, controlled, and changed in order to alter the characteristics of the computer system. Similarly, software applications running on computer systems also often include a large number of parameters, many of which may be controlled and changed to alter the characteristics of the application running on the computer system. As an example, in Microsoft's Windows NT operating system, the resolution and color characteristics of the computer system's display may be changed by selecting the “Control Panel” icon from a “Settings” menu item. When the control panel is displayed, a user is presented with a set of new icons, one of which (“Display Properties”) may be selected to bring up another panel containing a set of tabs. The “Settings” tab on the “Display Properties” panel may be selected which allows a user to manually change the number of colors, resolution, video refresh rate, font size, and related graphical characteristics. The user specifies the refresh frequency by selecting from a pull-down menu list of available settings (e.g. 60 Hz, 70 Hz, etc.). The user can specify the screen resolution by selecting a slider icon and moving it right or left to increase or decrease the screen resolution (e.g., from 1024×1280 pixels to 600×800 pixels). Some of these settings may affect the performance of applications running on the system. For example, decreasing the color resolution and screen resolution may increase the speed of some graphics applications.
This example focuses on system settings. When one also considers the numerous application settings and various different hardware configurations available to users, and the interaction of all of these settings and configurations, the control accessing of the plurality of settings and configurations can be cumbersome and often requires detailed knowledge on the part of computer users. The need for a dynamic, semi-automatic, consolidated, and rule-based system that changes such settings and other aspects of the computer system, and makes recommendations, becomes apparent. Although many graphical user interfaces exist to control various aspects of the system (such as the graphical slider which controls screen resolution for Windows platforms) and in applications, the need for improved graphical user interfaces becomes apparent as computer systems become more complex.
With reference now to the figures and in particular to FIG. 1, there is illustrated a computer system in accordance with the method and system of the present invention. Typically the computer system 12 includes a computer 36, a computer display 38, a keyboard 40, and multiple input pointing devices 42. Those skilled in the art will appreciate that input pointing devices may be implemented utilizing a pointing stick 44, a mouse 46, a track ball 48, a pen 50, display screen 52 (e.g. a touch display screen 52), or any other device that permits a user to manipulate objects, icons, and other display items in a graphical manner on the computer display 38. Connected to the computer system may also be audio speakers 54 and/or audio input devices 51. (See for example, IBM's Voice Type Dictation system. “Voice Type” is a trademark of the IBM Corporation.) A graphical user interface may be displayed on screen 52 and manipulated using any input pointing device 42. This graphical user interface may include display of an application 60 that displays information pages 62 using any known browser. The information pages may include graphical, audio, or text information 67 presented to the user via the display screen 52, speakers 54, or other output device. The information pages may contain selectable links 66 to other information pages, where such links can be activated by one of the input devices, like mouse 46, to request the associated information pages. This hardware is well known in the art and is also used in conjunction with televisions (“web TV”) and multimedia entertainment centers. The system 12 contains one or more memories (See 65 of FIG. 2.) where a remote computer 130, connected to the system 12 through a network 110, can send information. Here the network can be any known (public or privately available) local area network (LAN) or wide area network (WAN), e.g., the Internet. The display may be controlled by a graphics adaptor card such as an Intergraph Intense 3D,
Graphical user interfaces (GUIs) provide ways for users of computers and other devices to effectively communicate with the computer. In GUIs, available applications and data sets are often represented by icons 63 consisting of small graphical representations which can be selected by a user and moved on the screen. The data sets (including pages of information) and applications may reside on the local computer or on a remote computer accessed over a network. The selection of icons often takes the place of typing in a command using a keyboard in order to initiate a program or access a data set. In general, icons are tiny on-screen symbols that simplify access to a program, command, or data file. Icons are often activated or selected by moving a mouse-controlled cursor onto the icon and pressing one or more times on a mouse button.
GUIs include graphical images on computer monitors and often consist of both icons and windows. (GUIs may also reside on the screens of televisions, kiosks, personal digital assistants (PDAs), automatic teller machines (AIMs), and on other devices and appliances such as ovens, cameras, video recorders and instrument consoles.) A computer window is a portion of the graphical image that appears on the monitor and is dedicated to some specific purpose. Windows allow the user to treat the graphical images on the computer monitor like a desktop where various files can remain open simultaneously. The user can control the size, shape, and position of the windows.
Although the use of GUls with icons usually simplifies a user's interactions with a computer, GUIs are often tedious and frustrating to use. Icons must be maintained in a logical manner. It is difficult to organize windows and icons when many are similarly displayed at the same time on a single device.
In a drag-and-drop GUI, icons are selected 64 and moved 68 (i.e. “dragged”) to a target icon 69 to achieve a desired effect. For example, an icon representing a computer file stored on disk may be dragged over an icon containing an image of a printer in order to print the file, or dragged over an icon of a trash can to delete the file. An icon representing a page of information on the World Wide Web may be selected and dragged to a trash can to delete the link to the page of information. The page of information may be on the local machine or on a remote machine. A typical user's screen contains many icons, and only a subset of them will at anyone time be valid, useful targets for a selected icon. For example, it would not be useful to drag the icon representing a data file on top of an icon whose only purpose is to access an unrelated multimedia application.
Icons 63 could include static or animated graphics, text, multimedia presentations, and windows displaying TV broadcasts. Icons 63 could also include three dimensional images, for example, those used in virtual reality applications.
SUMMARY OF THE INVENTION
An object of this invention is a method and system for increasing the apparent speed of a computer by automatically optimizing software and hardware according to user-specified preferences.
Another object of this invention is to provide a method and system for increasing the apparent speed of a computer using a database.
Yet another object of this invention is to provide a method and system for effectively increasing the apparent speed of a computer based on results obtained by dynamically monitoring system behavior and performance.
This invention permits users to conveniently optimize software running on a computer. The term “optimize” refers to running of a computer system or software more efficiently, for example, by maximizing both the speed with which a software application runs and user satisfaction, and/or minimizing cost or resource use. “Optimization” includes the setting of various parameters in hardware, operating system software, or application software such that the system as a whole runs as efficiently as possible. These parameters might be set to optimize speed, system resource cost, or other variables corresponding to a user's satisfaction.
Accordingly, this invention provides for a method of enhancing, for example, program application performance on a computer system. With this invention configuration information and performance capabilities based on characteristics of the program/system are determined. Then, the configuration information and the performance capabilities are used to optimize configuration parameters of the program applications so as to enhance the performance of the workstation in running the program'system. Further, with this invention user preferences in the operation of the program are selected by, for example, dragging rule icons to a target optimizer icon to provide user selected rules of operation of the application program.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will be further understood by reference to the following detailed description when read in conjunction with the accompanying drawings, wherein:
FIG. 1 depicts a pictorial representation of an example computer system that embodies the present invention.
FIG. 2 is a block diagram of the computer system architecture showing an optimization database.
FIG. 3 is a block diagram showing portions of a computer network wherein a local computer and a remote computer are both connected directly to the network.
FIG. 4 are example database records that may be used for optimization.
FIG. 5 is a flow chart depicting the steps performed in the optimization.
FIG. 6 is a schematic illustration display with an optimizer and rule icons thereon.
FIG. 7 is a flow chart showing the steps of one preferred method of the present invention pertaining to the use of iconic rules.
DESCRIPTION OF THE PREFERRED EMBODIMENT
With reference now to FIG. 2, there is illustrated a block diagram of the architecture of the computer system 12 in accordance with the present invention.
The core architecture includes a Central Processing Unit 165, memory controller 162, system memory 65, disk storage 70, disk storage controller 75, and graphics subsystem 166. The computer system 12 can be either a stand alone workstation or a server and a workstation connected to each other via a communications network such as the internet. A portion of the system memory is set aside for an optimizer-database cache 80. Additionally, file space 85 on the disk storage unit 70 may be set aside for the optimizer database 140. Generally speaking, a cache or buffer is a place where data (files, images, and other information) can be stored to avoid having to read the data from a slower device, such as a remote, network-attached computer disk. For instance, a disk cache can store information that can be read without accessing remote disk storage.
With reference now to FIG. 3, there is illustrated a partial portion of a computer network in accordance with the method and system of the present invention. Computer system 12 connects to the network backbone 110 by means of a connecting device 100. Also connected to the network 110 are one or more server computers 130 by means of their own connecting device 100′. Those skilled in the art will appreciate that these connecting devices 100 may take various forms, including modems, token-ring hubs, and other network-enabling devices depending on the capabilities and technology of the connecting devices. The remote computer 130 may include an area of system memory and/or disk storage space dedicated to storing and maintaining a optimization database table 140 (e.g. data file). The optimization database table 140 may reside on the local client or reside on both the client and remote computer. Portions of the optimizer program 136 may reside on the local computer and/or the remote computer. The optimizer program contains or accesses a dynamic monitor 137 of system and application activity. Various user applications 138 run on the remote or local computer. For example, these applications may be office productivity, scientific and engineering, finance, transaction processing, Internet, or any other software a user needs to run. Such applications may be controlled by a configuration file 141 or a central database that controls particular settings of the application that may affect application performance. The optimizer program 136 may contain a graphical user interface 139, used to specify settings or provide information to the user. An operating system 150 runs on the local computer. The operating system, such as Windows NT, primarily provides an interface between the user application and the computer hardware. The operating system also provides services on behalf of the user and applications such as networking, file management, etc.
FIG. 4 includes example records 430 for optimizing system performance. The set of records comprise the database 140. Application settings 420 may consist of a set of control parameters A1, A2, . . . , AN shown in this example in rows 430 and associated with a particular unique identifier 410 for a software application. The software application may be designated in the database 140 as an alphanumeric string 410. By way of example, parameter A1 may control the graphical quality of an engineering application's 3-D graphics. Lower graphical quality often implies faster use of an application. System settings 440 contain information usually relating to static qualities of the computer system such as the particular operating system, amount of memory, processor speed, graphics card name, and bios version. These values S1, S2, . . . , SN are static in the sense that they do not usually change during the operation of an application. Dynamic data 460 may contain current or prior reports of system behavior or performance. The dynamic data is generally dynamic information, such as current CPU, memory, and disk use, all of which change as an application performs operations, and reads and writes information to memory and disk. The values M1, M2, M3 . . . for this dynamic data 460 may be obtained by a monitor program 137 which, for example, scans the system for CPU, memory, and disk use at specific increments of time. Suggestions 480 consist of alphanumeric information (R1, R2, R3, . . . ) that may be supplied to the user (e.g., recommendations or warning messages) for particular applications. The optimizer program 136 may scan a row or record 430 of database 400 to optimize a single, particular application, or it might join the results of numerous rows to optimize for a set of concurrently running applications designated by identifiers 410. Note that in FIG. 4, parameters A1, A2, A3 . . . control application settings. Parameters S1, S2, S3 . . . control system settings. Parameters M1, M2, M3 . . . control dynamic settings. Parameters R1, R2, R3 . . . are recommendations.
FIG. 5 comprises a flow chart for an optimization process 300 that the local computer 12 or server 130 uses to optimize software applications 138 and system response or utilization, or to provide recommendations 480. In step 303, the optimizer 136 gathers relevant system information including: operating system 150 version and release data, installed hardware components, hardware configuration, and software configurations. For example, the optimizer determines the size of RAM, BIOS level, installed options etc. This information gathering can be accomplished using standard operating system or other commands. For example, on Microsoft's Windows NT operating system, the “Winmsd/f” calls, the Win32 API, queries to the system registry, and other methods known to those skilled in the art, allow the optimizer to collect such information. In step 305, the optimizer 136 gathers relevant application information, for example, release version, installed options, etc. In step 310, the optimizer 136 reads records 430 from database 140, that control various parameters 420, associated with a particular application name 410. The database 140 may reside on a remote computer or server 130 accessed over a network 110 or on the local computer 12.
In step 320, the optimizer 136 monitors system 12 behavior. For example, the optimizer may query the current CPU use, memory use, or other activity 321 using operating system commands known to those skilled in the art. Also, a monitor program 137 may use such commands to monitor such activity. This monitor program 137 may contain a graphical user interface 139 that displays such activity in graphical form, such as with bar graphs, pie carts, numerical indicators, gauges, etc. This activity 321 may be stored in the form of dynamic values M1, M2, . . . , MN in settings 460 and read by the optimizer program 136. Alternatively, the values corresponding to system activity/use may be directly obtained using operating system commands. One benefit of storing the dynamic data is that the optimizer 136 may compare current to past system activity. In this step 320, the optimizer also may perform performance measurements to “benchmark” the system by running built-in test routines. For example, the optimizer may time the rotation of a 3-D graphical object to assess the speed of the graphics subsystem 166.
In step 325, the optimizer 136 reads user input. For example, the user may enter text or data at the keyboard 40 (or with various input devices 46, 48, 50, or by voice input using audio input device 51) that specifies a level of optimization 326. This level of optimization may control which of the application settings 420 are used to optimize the application in step 330 or optimize the system 12 in step 340. A user wishing to have maximum performance may, for example, sacrifice graphic quality controlled in applications settings 420, that are generally read upon invocation of application 138.
By way of example, the optimizer 136 can adjust the following parameter settings 420, in the Unigraphics control file to adjust performance. (Unigraphics is an graphically-intensive engineering application created by EDS.) The values for each of these settings may be determined in step 325 and stored in record 430.
Low Performance settings
    • *Ugraf130.realTimeDynamics: TRUE
    • *Ugraf130.suppressAutoRefresh: FALSE
    • *Ugraf130.backfaceCulling : FALSE
    • *Ugraf130.depthSortedWireframe: TRUE
    • *Ugraf130.lineAntialiasing: TRUE
    • *Ugraf130.disableTranslucency: FALSE
High Performance settings
    • *Ugraf130.realTimeDynamics: FALSE
    • *Ugraf130.suppressAutoRefresh: TRUE
    • *Ugraf130.backfaceCulling: TRUE
    • *Ugraf130.depthSortedWireframe: FALSE
    • *Ugraf130.lineAntialiasing: FALSE
    • *Ugraf130.disableTranslucency: TRUE
In this example, if a user sets suppressAutoRefresh to TRUE, the application performance can improve by reducing excess redrawing. “Low Performance” is generally correlated with higher graphical quality. The “level” of optimization 326 may correspond to the number of “high performance” settings selected. For example, highest performance (highest level of optimization) may correspond to the use of all the settings in their high performance states. Lower levels of optimization correspond to fewer of the high-performance settings being used. Those values that constitute high performance settings may be stored in application settings 420.
Similarly, the optimizer also optimizes system settings 440. These are settings independent of applications and generally associated with the computer or its hardware or software components. For example, the graphics card may have general settings that control the resolution, color depth, synchronization on vertical refresh, and other features. The disk may have a fragmentation state which may be altered. The size of “swap” spaces may be specified. These system settings are sometimes stored in the system registry or in initialization files which may be modified using methods known to those skilled in the art.
Returning to step 325 in FIG. 5, as an alternative to text, a graphical user interface 139 may be used to provide input data. For example, a graphical depiction of a slider may be used to control the program optimization level by causing the optimizer 136 to optimize 330 the application by writing discrete records in an application configuration file 141 stored on disk. See step 330. Such a file as the configuration file 141 is typically read by an application when the application starts and controls various performance characteristics of a particular application. The audio input device 51 also permits speech input in step 325. Generally speaking, in steps 330 and 340, the optimizer uses the information acquired in steps 303, 305, 310, 320, and 325 to adjust system or application parameters in order to optimize the operation of the application. For example, the ensemble of data from 310, 320, and 325 may cause the optimizer to not only specify settings to the application but also to the graphics card, or system to alter the speed of the application. In general, the optimizer adjusts system and application settings to best meet user-specified quality/performance trade-offs. The information gathered in steps 303, 305, and 320 may be stored in the database 140 maintained by the optimizer. The database can be helpful in determining changes to system and application configurations at different points in time, in evaluating the effects of changing application settings, and in comparing actual system/application settings with recommended settings.
In step 350, the optimizer 136 may provide suggestions or recommendations 480, for example, in the form of specific text that is output to the user. This output may appear in the optimizer's graphical user interface 139, in a web browser 90, or as audible sound played through speakers 54 another audio output device. These recommendations may be used to warn the user of various conditions (e.g. “disk space is low”), or give suggestions on how to improve performance (e.g. “purchase more memory”). The optimizer contains rules 331, 341, 351 that it uses to make such optimizations 330, 340 and recommendations 350. For example, a rule may be: If A1=yes, and S1=200 MHz, or M1=90%, then make suggestion and change (in step 340) the graphic card settings (e.g. 450) that control “synchronization on vertical refresh”. In this example, S1 corresponds to the processor frequency, and M1 corresponds to the percentage of memory used. A rule may consist of a set of conditionals and Boolean operations (e.g. if A and B are true and C is false then make suggestions and take action).
Note that the suggestions 480, entire records 430, and rules 331, 341, 351 may be segregated into different files in database 400, stored at a local machine 12 or remote machine 130. Users may view (360) the rules 331, 341, 350, records 430, and suggestions 480 using graphical user interface 53, which may visually segregate these items based on origin of the suggestions (e.g. companies, individuals, etc.), severity, date, or other criteria. These rules and suggestions may be web accessible (using network 110) for dynamic optimization across the web using a propriety program product at the web server.
Referring to FIGS. 1 and 5, note that the rules 331, 341, 351 may also be represented as icons 63 displayed on the graphics screen. (These icons representing rules are hereafter sometimes referred to as “iconic rules”.) Particular rules may be selected 64 from a set of available rules by the user and dragged 68 to an icon 69 representing the optimizer 136 so that the optimizer will implement 330, 340, 350 the rules. Additionally, the rules 331, 341, 351 may require password protection so that only certain users or classes of users have permission to implement the rules. In an example scenario, a user drags 68 an iconic rule 63 to optimizer icon 69. This rule may require that the graphical quality be degraded for a model part if the model part consists of greater than 100,000 triangular facets. (This will enhance the display speed of the model part.) When the user drops the iconic rule on the optimizer icon, the user must enter a password (e.g. consisting of a keyboard entry, speech input, mouse swipes, a sequence of mouse key presses, a secret position on the optimizer icon, or by other means) before the rule is acted upon in steps 330, 340, or 350. In another embodiment, the rules are dragged to a region 70 of the screen and not to the optimizer icon in order for the rules to take effect. Password protection may be useful in a variety of situations, for example, if certain rules are being tested by developers and administrators or if certain rules cause actions that should be restricted (e.g. access to confidential databases, CPU or cost-intensive jobs, the allocation of e-money and credit information, etc.)
The optimizer in steps 330, 340 and 350 may learn 370 from a user's past activity. For example, if the user has always used an application with small files, and past CPU use has always been low (e.g. as stored in settings 470), the software optimizer can make suggestions (480), accordingly. Note that one benefit of having portions of the database 140 (e.g. the settings and suggestions) and rules 331, 341, and 351 on a remote machine 130 is that a company or system administrator can continually manage and update messages and rules as new information is provided by application vendors. When a user runs an application in 410, the user can make use of the latest information in the database. If the database 140 resides on a remote machine 130 the optimization 330, 340, and 350 can be performed either on the local machine or the remote machine. If performed on a remote machine, messages and other parameters are fed from the remote server 130 to the client 12 using the network 110.
FIG. 6 is a block diagram of a GUI 591 with rule icons 540,63 (See FIG. 1.) including optimizer icons 69, 510, 511. In the present invention, the user uses a selection device such as mouse 46 to select 512 an icon 540 and drags 550 the icon to optimizer icons 510, 511. If the icon 540, representing a rule, is touching or close (within a threshold distance 590) to the optimizer icon 510, then the rule 541, 331, 341, 351 is applied. In other words, “closeness” of an icon is determined by computing the distances from the selected icon 540 to regions 520 of the optimizer icon displayed on the GUI. If the distance is smaller than a particular threshold 592, the icon 540 is close to a region of the optimizer.
In one embodiment, the optimizer icon 510 consists of different regions 520 to which iconic rules 540 are dragged. The optimizer software determines near what location 520 icon is positioned using techniques which are well known to those skilled in the art of GUI interfaces. In addition to performing general optimization, the optimizer icons 510 may be used to specify the ‘nature’ of the update; for example, one optimizer icon 510 may be specified for optimization concerning graphics, while another icon 511 may be specific for controlling all aspects of memory and disk space. The optimizer icon may change its graphical attribute such as color or brightness 570 in response to the information gained when the optimizer software applies the rules 541. For example, once a rule is successfully applied, then the optimizer region 520 may turn red 570. The iconic rules 541 may also change graphical attributes in a similar manner. (Changes in graphical characteristics of the iconic rules and optimizer icons are carried out in step 670 in FIG. 7).
The rule application can be carried out by the optimizer software by comparing the position 585 of icon 540 to values stored in a position file 596 which may be stored on disk.
The optimizer icon 510 may also contain graphical indications of regions 520, such as cutouts 530, to which iconic rules 540 may be dragged. In this manner, when the icons are placed in the optimizer icon 510 there can be a graphical indication 551 of the binding to the user. Additionally, the area around the cutout may change color or brightness 570 once an icon 540 is located in the cutout. The use of discrete cutouts 530 may be useful when only a limited number of rules may be used. The rules may be evident to the user by text 560 written on the optimizer icon or by colors 570.
FIG. 7 is a flow chart 600 showing the steps 600 performed for a preferred version of optimizer 163 executed by the system in FIG. 1. In step 610, a program checks if an icon 540 (e.g., if an iconic rule) is selected. The selected icon 540 may be selected by any selection method: e.g., pointing and clicking or by an application program If the icon is moved 620, its new location is determined 630. If the icon is near (within a threshold distance 590 from) an optimizer region 520 (step 640), then a visual indication 650 of placement such as changing color or brightness 570 of a region 520 optionally may be given. As stated in the description of FIG. 5, the region 520 may be graphically depicted as cutouts 530 to help give users a graphical (visual) indication of the placement. Also as mentioned in the description for FIG. 5, “nearness” or “closeness” is determined by computing the distances from the selected icon to all optimizer icons regions 520 on the GUI. In one preferred embodiment, distances are computed using known geometrical methods. For example, if (x1,y1) are the coordinates of an icon 540 and (x2,y2) are the coordinates of a region 520, then the distance is d-sqrt ((x2−x1)**2+(y2−y1)**2). This formula may be extended to include additional variables for higher dimensional spaces, such as in a virtual reality or three-dimensional environment. An optimizer table (file) 596 on disk may store the x,y locations of regions 520.
The rule 541 represented by an icon 540 is applied 660. The icon 540 or optimizer icon 510 optionally may change color, brightness, texture, blink rate, shape, size, or other graphical attribute (see step 670). This graphical attribute may be a function of the nature of the rule. For example, an iconic rule that increases graphics quality may be red. An icon representing a rule that decreases graphics quality may be green. The optimizer icon may change colors when the rule is successfully applied or has a beneficial effect.

Claims (58)

1. In a computer system, a method of enhancing program application or system performance of said computer system, said method comprising:
a. determining configuration information of said computer system;
b. determining performance capabilities of said computer system based on known characteristics and behaviors of said program application; and
c. automatically optimizing configuration parameters of said program application in response to said configuration information and said performance capabilities.
2. A method as recited in claim 1, further comprising:
a. determining user preferences for the operation of said computer system and further automatically optimizing said computer system in response to said user preferences.
3. A method as recited in claim 1, wherein said determining performance capabilities of said computer system comprises:
a. comparing system performance against previous system performance, where said previous system performance is stored in a database with said configuration parameters.
4. A method as recited in claim 2, wherein said user preferences are determined using a graphic user interface through which a user enters said user preferences.
5. A method as recited in claim 1, further comprising:
a. providing recommended system configurations in response to said performance capabilities that are determined.
6. A method as recited in claim 1, wherein said configuration information comprises at least one of the following:
a. CPU speed, memory capacity, disk subsystem capabilities, system BIOS version, graphics adapter type, driver levels, operating system software and service pack release levels.
7. A method as recited in claim 1, wherein said performance capabilities comprise at least one of the following:
a. CPU performance for integer and floating point tasks, memory subsystem throughput, disk subsystem throughput,
b. 3D graphics performance, and
c. 2D graphics performance.
8. A method as recited in claim 1, wherein said computer system can operate according to a plurality of rules of operation, wherein said graphic user interface comprises user selectable rule icons, each of which represents one of said rules of operation for said computer system, and wherein a user can select at least one of said rules of operation by selecting at least corresponding one of said rule Icons.
9. A method as recited in claim 8, wherein said user selects one of said rule icons by dragging and dropping said one icon to an optimizer icon, wherein said dropping results in the application of said selected one rule of operation.
10. A method as recited in claim 9, wherein said optimizer icon comprises a plurality of locations, each location capable of accepting one of said rule icons, wherein one of said rules is implemented when a corresponding one of said rule icons representing said one rule is placed on said graphical user interface within a threshold distance of said one location.
11. A method as recited in claim 10, wherein each location is visually distinguished.
12. A method as recited in claim 10, wherein each location is visually distinguished by at least one of the following characteristics: color, outline, textures, and brightness.
13. A method as recited in claim 10, wherein each location is spatially distinguished.
14. A method as recited in claim 10, wherein at least one of said locations is a cutout on said optimizer icon.
15. A method as recited in claim 10, wherein there is a visual indication that one of said rule icons is within said threshold distance.
16. A method as recited in claim 1, further comprising:
a. storing said known characteristics and behaviors of said program application in a database.
17. A method as recited in claim 16, wherein said database is hard-coded into said program application.
18. A method as recited in claim 16, wherein said database is stored as a table.
19. A method as recited in claim 16, wherein said database is constructed by the user via a graphical user interface that uses a drag-and-drop paradigm to construct rules by combining graphical user interface components representing components of the rule.
20. A method as recited in claim 16, wherein said database is stored in a storage device that is remote from said workstation.
21. A method as recited in claim 1, wherein said computer system comprises a server and a remote station which can be interconnected to each other through a communications network.
22. A method as recited in claim 1, further comprising optimizing configuration parameters of said computer system in response to said configuration information and said performance capabilities.
23. A method as recited in claim 1, wherein determining performance capabilities of said computer system comprises:
a. determining real time resource utilization when said program application is being executed.
24. A method of running an application program on a computer system to accomplish a user selected result in the running of the application program, said method comprising:
a. determining the utilization of selected resources of said computer system at selected intervals during the running of the application program;
b. comparing said resource utilization with predefined thresholds; and
c. alerting a user of said computer system to alter application program parameters if said resource utilization comparison satisfies predefined criteria with respect to said thresholds.
25. A method as recited in claim 24, wherein said predefined criteria comprises a combination of resource utilization requirements for a set of said resources of said computer system.
26. A method of enhancing computer systems performance, said method comprising:
a. monitoring user activity;
b. determining user activity patterns;
c. matching said user activity patterns against entries in a database; and
d. performing at least one of making suggestions or and alerting said user to alter at least one of computer system parameters and application program parameters in accordance with said entries.
27. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for enhancing program application or system performance of a computer system, said method steps comprising:
a. determining configuration information of said computer system;
b. determining performance capabilities of said computer system based on known characteristics and behaviors of said program application; and
c. automatically optimizing configuration parameters of said program application in response to said configuration information and said performance capabilities.
28. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for running an application program on a computer system to accomplish a user selected result in the running of the application program, said method steps comprising:
a. determining the utilization of selected resources of said computer system at selected intervals during the running of the application program;
b. comparing said resource utilization with predefined thresholds; and
c. alerting a user of said computer system to alter application program parameters if said resource utilization comparison satisfies predefined criteria with respect to said thresholds.
29. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for enhancing computer systems performance, said method comprising:
a. monitoring user activity;
b. determining user activity patterns;
c. matching said user activity patterns against entries in a database; and
d. performing at least one of making suggestions or and alerting said user to alter at least one of computer system parameters and application program parameters in accordance with said entries.
30. A system for enhancing program application or system performance of a computer system comprising:
a. means for determining configuration information of said computer system;
b. means for ascertaining performance capabilities of said computer system based on known characteristics and behaviors of said program application; and
c. processing means for automatically optimizing configuration parameters of said program application based on said configuration information and said performance capabilities.
31. The system of claim 30 further comprising notifying means for notifying a user of said optimal configuration parameters.
32. The system of claim 30 wherein said automatically optimizing comprises automatically resetting configuration parameters of said program application.
33. In a computer system, a method of enhancing program application performance of said computer system, said method comprising:
a. determining performance capabilities of said computer system based on known characteristics and behaviors of said program application; and
b. automatically optimizing configuration parameters of said program application in response to said performance capabilities.
34. A method as recited in claim 33, further comprising:
a. determining user preferences for the operation of said computer system and further automatically optimizing said configuration parameters of said program application in response to said user preferences.
35. A method as recited in claim 33, wherein said determining performance capabilities of said computer system comprises:
a. comparing system performance against previous system performance, where said previous system performance is stored in a database with said configuration parameters.
36. A method as recited in claim 34, wherein said user preferences are determined using a graphic user interface through which a user enters said user preference.
37. A method as recited in claim 33, further comprising:
a. providing recommended system configurations in response to said performance capabilities that are determined.
38. A method as recited in claim 33, wherein said performance capabilities comprise at least one of the following:
a. CPU performance for integer and floating point tasks, memory subsystem throughput, disk subsystem throughput,
b. 3D graphics performance, and
c. 2D graphics performance.
39. A method as recited in claim 33, wherein said computer system can operate according to a plurality of rules of operation, wherein said graphic user interface comprises user selectable rule icons, each of which represents one of said rules of operation for said computer system, and wherein a user can select at least one of said rules of operation by selecting at least corresponding one of said rule icons.
40. A method as recited in claim 39, wherein said user selects one of said rule icons by dragging and dropping said one icon to an optimizer icon, wherein said dropping results in the application of said selected one rule of operation.
41. A method as recited in claim 40, wherein said optimizer icon comprises a plurality of locations, each location capable of accepting one of said rule icons, wherein one of said rules is implemented when a corresponding one of said rule icons representing said one rule is placed on said graphical user interface within a threshold distance of said one location.
42. A method as recited in claim 41, wherein each location is visually distinguished.
43. A method as recited in claim 41, wherein each location is visually distinguished by at least one of the following characteristics: color, outline, textures, and brightness.
44. A method as recited in claim 41, wherein each location is spatially distinguished.
45. A method as recited in claim 41, wherein at least one of said locations is a cutout on said optimizer icon.
46. A method as recited in claim 41, wherein there is a visual indication that one of said rule icons is within said threshold distance.
47. A method as recited in claim 33, further comprising:
a. storing said known characteristics and behaviors of said program application in a database.
48. A method as recited in claim 47, wherein said database is hard-coded into said program application.
49. A method as recited in claim 47, wherein said database is stored as a table.
50. A method as recited in claim 47, wherein said database is constructed by the user via a graphical user interface that uses a drag-and-drop paradigm to construct rules by combining graphical user interface components representing components of the rule.
51. A method as recited in claim 47, wherein said database is stored in a storage device that is remote from said workstation.
52. A method as recited in claim 33, wherein said computer system comprises a server and a remote station which can be interconnected to each other through a communication network.
53. A method as recited in claim 33, further comprising optimizing configuration parameters of said computer system in response to said performance capabilities.
54. A method as recited in claim 33, wherein determining performance capabilities of said computer system comprises:
a. determining real time resource utilization when said program application is being executed.
55. A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for enhancing computer application performance of a computer system, said method steps comprising:
a. determining performance capabilities of said computer system based on known characteristics and behaviors of said program application; and
b. automatically optimizing configuration parameters of said program application in response to said performance capabilities.
56. A system for enhancing program application performance of a computer system comprising:
a. means for ascertaining performance capabilities of said computer system based on known characteristics and behaviors of said program application; and
b. means for automatically optimizing configuration parameters of said program application in response to said performance capabilities.
57. The system of claim 56 further comprising notifying means for notifying a user of said optimal configuration parameters.
58. The system of claim 56 wherein said automatically optimizing comprises automatically resetting configuration parameters of said program application.
US10/141,383 1998-04-14 2002-05-08 System and method for optimizing computer software and hardware Expired - Lifetime USRE38865E1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/141,383 USRE38865E1 (en) 1998-04-14 2002-05-08 System and method for optimizing computer software and hardware

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/060,028 US6059842A (en) 1998-04-14 1998-04-14 System and method for optimizing computer software and hardware
US10/141,383 USRE38865E1 (en) 1998-04-14 2002-05-08 System and method for optimizing computer software and hardware

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/060,028 Reissue US6059842A (en) 1998-04-14 1998-04-14 System and method for optimizing computer software and hardware

Publications (1)

Publication Number Publication Date
USRE38865E1 true USRE38865E1 (en) 2005-11-01

Family

ID=22026878

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/060,028 Ceased US6059842A (en) 1998-04-14 1998-04-14 System and method for optimizing computer software and hardware
US10/141,383 Expired - Lifetime USRE38865E1 (en) 1998-04-14 2002-05-08 System and method for optimizing computer software and hardware

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/060,028 Ceased US6059842A (en) 1998-04-14 1998-04-14 System and method for optimizing computer software and hardware

Country Status (1)

Country Link
US (2) US6059842A (en)

Cited By (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030204714A1 (en) * 2002-04-24 2003-10-30 Rothman Michael A. Methods and apparatuses for uniform configuration for a computer system
US20050034117A1 (en) * 2003-08-06 2005-02-10 Hitachi, Ltd. Information processing apparatus and an information processing system
US20050132335A1 (en) * 2003-12-10 2005-06-16 Jonathan Maron Application performance tuning server-side component
US20050144267A1 (en) * 2003-12-10 2005-06-30 Jonathan Maron Application server performance tuning client interface
US20050160373A1 (en) * 2004-01-16 2005-07-21 International Business Machines Corporation Method and apparatus for executing multiple file management operations
US20060047794A1 (en) * 2004-09-02 2006-03-02 Microsoft Corporation Application of genetic algorithms to computer system tuning
US20070061429A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Optimizing utilization of application resources
US20090037824A1 (en) * 2007-07-30 2009-02-05 Oracle International Corporation Simplifying determination of whether application specific parameters are setup for optimal performance of associated applications
US20090319951A1 (en) * 2008-06-19 2009-12-24 International Business Machines Corporation Aggregating Service Components
CN103942069B (en) * 2014-04-01 2017-06-09 西安睿控创合电子科技有限公司 A kind of quick starting guide method based on X86 platform Vxworks operating systems
US10055880B2 (en) 2016-12-06 2018-08-21 Activision Publishing, Inc. Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional
US10099140B2 (en) 2015-10-08 2018-10-16 Activision Publishing, Inc. System and method for generating personalized messaging campaigns for video game players
US10102098B2 (en) 2015-12-24 2018-10-16 Industrial Technology Research Institute Method and system for recommending application parameter setting and system specification setting in distributed computation
US10118099B2 (en) 2014-12-16 2018-11-06 Activision Publishing, Inc. System and method for transparently styling non-player characters in a multiplayer video game
US10137376B2 (en) 2012-12-31 2018-11-27 Activision Publishing, Inc. System and method for creating and streaming augmented game sessions
US10179289B2 (en) 2016-06-21 2019-01-15 Activision Publishing, Inc. System and method for reading graphically-encoded identifiers from physical trading cards through image-based template matching
US10213682B2 (en) 2015-06-15 2019-02-26 Activision Publishing, Inc. System and method for uniquely identifying physical trading cards and incorporating trading card game items in a video game
US10226703B2 (en) 2016-04-01 2019-03-12 Activision Publishing, Inc. System and method of generating and providing interactive annotation items based on triggering events in a video game
US10226701B2 (en) 2016-04-29 2019-03-12 Activision Publishing, Inc. System and method for identifying spawn locations in a video game
US10232272B2 (en) 2015-10-21 2019-03-19 Activision Publishing, Inc. System and method for replaying video game streams
US10245509B2 (en) 2015-10-21 2019-04-02 Activision Publishing, Inc. System and method of inferring user interest in different aspects of video game streams
US10284454B2 (en) 2007-11-30 2019-05-07 Activision Publishing, Inc. Automatic increasing of capacity of a virtual space in a virtual world
US10286326B2 (en) 2014-07-03 2019-05-14 Activision Publishing, Inc. Soft reservation system and method for multiplayer video games
US10286314B2 (en) 2015-05-14 2019-05-14 Activision Publishing, Inc. System and method for providing continuous gameplay in a multiplayer video game through an unbounded gameplay session
US10315113B2 (en) 2015-05-14 2019-06-11 Activision Publishing, Inc. System and method for simulating gameplay of nonplayer characters distributed across networked end user devices
US10376781B2 (en) 2015-10-21 2019-08-13 Activision Publishing, Inc. System and method of generating and distributing video game streams
US10376793B2 (en) 2010-02-18 2019-08-13 Activision Publishing, Inc. Videogame system and method that enables characters to earn virtual fans by completing secondary objectives
US10421019B2 (en) 2010-05-12 2019-09-24 Activision Publishing, Inc. System and method for enabling players to participate in asynchronous, competitive challenges
US10463964B2 (en) 2016-11-17 2019-11-05 Activision Publishing, Inc. Systems and methods for the real-time generation of in-game, locally accessible heatmaps
US10463971B2 (en) 2017-12-06 2019-11-05 Activision Publishing, Inc. System and method for validating video gaming data
US10471348B2 (en) 2015-07-24 2019-11-12 Activision Publishing, Inc. System and method for creating and sharing customized video game weapon configurations in multiplayer video games via one or more social networks
US10486068B2 (en) 2015-05-14 2019-11-26 Activision Publishing, Inc. System and method for providing dynamically variable maps in a video game
US10500498B2 (en) 2016-11-29 2019-12-10 Activision Publishing, Inc. System and method for optimizing virtual games
US10537809B2 (en) 2017-12-06 2020-01-21 Activision Publishing, Inc. System and method for validating video gaming data
US10561945B2 (en) 2017-09-27 2020-02-18 Activision Publishing, Inc. Methods and systems for incentivizing team cooperation in multiplayer gaming environments
US10573065B2 (en) 2016-07-29 2020-02-25 Activision Publishing, Inc. Systems and methods for automating the personalization of blendshape rigs based on performance capture data
US10596471B2 (en) 2017-12-22 2020-03-24 Activision Publishing, Inc. Systems and methods for enabling audience participation in multi-player video game play sessions
US10627983B2 (en) 2007-12-24 2020-04-21 Activision Publishing, Inc. Generating data for managing encounters in a virtual world environment
US10694352B2 (en) 2015-10-28 2020-06-23 Activision Publishing, Inc. System and method of using physical objects to control software access
US10709981B2 (en) 2016-11-17 2020-07-14 Activision Publishing, Inc. Systems and methods for the real-time generation of in-game, locally accessible barrier-aware heatmaps
US10765948B2 (en) 2017-12-22 2020-09-08 Activision Publishing, Inc. Video game content aggregation, normalization, and publication systems and methods
US10818060B2 (en) 2017-09-05 2020-10-27 Activision Publishing, Inc. Systems and methods for guiding motion capture actors using a motion reference system
US10861079B2 (en) 2017-02-23 2020-12-08 Activision Publishing, Inc. Flexible online pre-ordering system for media
US10974150B2 (en) 2017-09-27 2021-04-13 Activision Publishing, Inc. Methods and systems for improved content customization in multiplayer gaming environments
US10981069B2 (en) 2008-03-07 2021-04-20 Activision Publishing, Inc. Methods and systems for determining the authenticity of copied objects in a virtual environment
US10981051B2 (en) 2017-12-19 2021-04-20 Activision Publishing, Inc. Synchronized, fully programmable game controllers
US11040286B2 (en) 2017-09-27 2021-06-22 Activision Publishing, Inc. Methods and systems for improved content generation in multiplayer gaming environments
US11097193B2 (en) 2019-09-11 2021-08-24 Activision Publishing, Inc. Methods and systems for increasing player engagement in multiplayer gaming environments
US11115712B2 (en) 2018-12-15 2021-09-07 Activision Publishing, Inc. Systems and methods for indexing, searching for, and retrieving digital media
US11185784B2 (en) 2015-10-08 2021-11-30 Activision Publishing, Inc. System and method for generating personalized messaging campaigns for video game players
US11192028B2 (en) 2018-11-19 2021-12-07 Activision Publishing, Inc. Systems and methods for the real-time customization of video game content based on player data
US11263670B2 (en) 2018-11-19 2022-03-01 Activision Publishing, Inc. Systems and methods for dynamically modifying video game content based on non-video gaming content being concurrently experienced by a user
US11278813B2 (en) 2017-12-22 2022-03-22 Activision Publishing, Inc. Systems and methods for enabling audience participation in bonus game play sessions
US11305191B2 (en) 2018-12-20 2022-04-19 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
US11344808B2 (en) 2019-06-28 2022-05-31 Activision Publishing, Inc. Systems and methods for dynamically generating and modulating music based on gaming events, player profiles and/or player reactions
US11351466B2 (en) 2014-12-05 2022-06-07 Activision Publishing, Ing. System and method for customizing a replay of one or more game events in a video game
US11351459B2 (en) 2020-08-18 2022-06-07 Activision Publishing, Inc. Multiplayer video games with virtual characters having dynamically generated attribute profiles unconstrained by predefined discrete values
US11423605B2 (en) 2019-11-01 2022-08-23 Activision Publishing, Inc. Systems and methods for remastering a game space while maintaining the underlying game simulation
US11420122B2 (en) 2019-12-23 2022-08-23 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
US11439904B2 (en) 2020-11-11 2022-09-13 Activision Publishing, Inc. Systems and methods for imparting dynamic and realistic movement to player-controlled avatars in video games
US11524234B2 (en) 2020-08-18 2022-12-13 Activision Publishing, Inc. Multiplayer video games with virtual characters having dynamically modified fields of view
US11537209B2 (en) 2019-12-17 2022-12-27 Activision Publishing, Inc. Systems and methods for guiding actors using a motion capture reference system
US11563774B2 (en) 2019-12-27 2023-01-24 Activision Publishing, Inc. Systems and methods for tracking and identifying phishing website authors
US11679330B2 (en) 2018-12-18 2023-06-20 Activision Publishing, Inc. Systems and methods for generating improved non-player characters
US11712627B2 (en) 2019-11-08 2023-08-01 Activision Publishing, Inc. System and method for providing conditional access to virtual gaming items
US11717753B2 (en) 2020-09-29 2023-08-08 Activision Publishing, Inc. Methods and systems for generating modified level of detail visual assets in a video game
US11724188B2 (en) 2020-09-29 2023-08-15 Activision Publishing, Inc. Methods and systems for selecting a level of detail visual asset during the execution of a video game
US11794107B2 (en) 2020-12-30 2023-10-24 Activision Publishing, Inc. Systems and methods for improved collision detection in video games
US11833423B2 (en) 2020-09-29 2023-12-05 Activision Publishing, Inc. Methods and systems for generating level of detail visual assets in a video game
US11853439B2 (en) 2020-12-30 2023-12-26 Activision Publishing, Inc. Distributed data storage system providing enhanced security

Families Citing this family (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278433B2 (en) * 1998-07-31 2001-08-21 Sony Corporation Method and apparatus for setting up a monitor
US7225137B1 (en) 1998-09-08 2007-05-29 Isogon Corporation Hardware/software management, purchasing and optimization system
WO2000022520A1 (en) * 1998-10-09 2000-04-20 Sun Microsystems, Inc. Configuring system units
US6442507B1 (en) 1998-12-29 2002-08-27 Wireless Communications, Inc. System for creating a computer model and measurement database of a wireless communication network
US6282304B1 (en) * 1999-05-14 2001-08-28 Biolink Technologies International, Inc. Biometric system for biometric input, comparison, authentication and access control and method therefor
AU4851000A (en) * 1999-05-14 2000-12-05 Biolink Technologies International, Inc. Biometric system for biometric input, comparison, authentication and access control and method therefor
US6493679B1 (en) * 1999-05-26 2002-12-10 Wireless Valley Communications, Inc. Method and system for managing a real time bill of materials
US6317599B1 (en) * 1999-05-26 2001-11-13 Wireless Valley Communications, Inc. Method and system for automated optimization of antenna positioning in 3-D
US6850946B1 (en) * 1999-05-26 2005-02-01 Wireless Valley Communications, Inc. Method and system for a building database manipulator
US7243054B2 (en) 1999-07-14 2007-07-10 Wireless Valley Communications, Inc. Method and system for displaying network performance, cost, maintenance, and infrastructure wiring diagram
US6499006B1 (en) * 1999-07-14 2002-12-24 Wireless Valley Communications, Inc. System for the three-dimensional display of wireless communication system performance
US7159192B2 (en) 1999-08-13 2007-01-02 Hotbar.Com, Inc. System and method for customizing electronic messages
IL130972A0 (en) 1999-07-15 2001-01-28 Hotbar Com Israel Ltd Method for the dynamic improvement of internet browser appearance and connectivity
US7222303B2 (en) 1999-07-15 2007-05-22 Hotbar.Com, Inc. System and method for the dynamic improvement of internet browser navigability
JP2001175665A (en) * 1999-12-15 2001-06-29 Benetsuse Corp:Kk System and method for providing optimum information
JP4005293B2 (en) * 2000-02-29 2007-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション Computer, control method therefor, recording medium, and transmission medium
US6671802B1 (en) * 2000-04-13 2003-12-30 Hewlett-Packard Development Company, L.P. Performance optimization of computer system by dynamically and immediately updating a configuration setting based on detected change in preferred use
US7665082B2 (en) * 2000-06-30 2010-02-16 Microsoft Corporation Methods and systems for adaptation, diagnosis, optimization, and prescription technology for network-based applications
US6971063B1 (en) * 2000-07-28 2005-11-29 Wireless Valley Communications Inc. System, method, and apparatus for portable design, deployment, test, and optimization of a communication network
US7680644B2 (en) * 2000-08-04 2010-03-16 Wireless Valley Communications, Inc. Method and system, with component kits, for designing or deploying a communications network which considers frequency dependent effects
US7085697B1 (en) 2000-08-04 2006-08-01 Motorola, Inc. Method and system for designing or deploying a communications network which considers component attributes
US7096173B1 (en) 2000-08-04 2006-08-22 Motorola, Inc. Method and system for designing or deploying a communications network which allows simultaneous selection of multiple components
US7246045B1 (en) 2000-08-04 2007-07-17 Wireless Valley Communication, Inc. System and method for efficiently visualizing and comparing communication network system performance
US6625454B1 (en) 2000-08-04 2003-09-23 Wireless Valley Communications, Inc. Method and system for designing or deploying a communications network which considers frequency dependent effects
US7055107B1 (en) 2000-09-22 2006-05-30 Wireless Valley Communications, Inc. Method and system for automated selection of optimal communication network equipment model, position, and configuration
US6973622B1 (en) * 2000-09-25 2005-12-06 Wireless Valley Communications, Inc. System and method for design, tracking, measurement, prediction and optimization of data communication networks
US6944759B1 (en) * 2000-09-29 2005-09-13 Hewlett-Packard Development Company, L.P. Automatic system configuration management
US7113900B1 (en) 2000-10-24 2006-09-26 Microsoft Corporation System and method for logical modeling of distributed computer systems
US7606898B1 (en) 2000-10-24 2009-10-20 Microsoft Corporation System and method for distributed management of shared computers
US6996576B2 (en) * 2000-11-22 2006-02-07 Bmc Software, Inc. Database management system and method which automatically schedules and performs actions and monitors results
AU3072902A (en) * 2000-12-18 2002-07-01 Wireless Valley Comm Inc Textual and graphical demarcation of location, and interpretation of measurements
US20010054097A1 (en) * 2000-12-21 2001-12-20 Steven Chafe Monitoring and reporting of communications line traffic information
US7164883B2 (en) * 2001-02-14 2007-01-16 Motorola. Inc. Method and system for modeling and managing terrain, buildings, and infrastructure
US7210105B2 (en) * 2001-03-02 2007-04-24 National Instruments Corporation System and method for synchronizing software execution
DE10114777C2 (en) * 2001-03-26 2003-06-12 Infineon Technologies Ag Method for operating a computer system
US7016936B2 (en) * 2001-05-15 2006-03-21 Hewlett-Packard Development Company, L.P. Real time electronic service interaction management system and method
US7366685B2 (en) * 2001-05-25 2008-04-29 International Business Machines Corporation Method and apparatus upgrade assistance using critical historical product information
JP4307759B2 (en) * 2001-05-30 2009-08-05 富士通株式会社 Reading apparatus and method
US7607135B2 (en) * 2001-06-15 2009-10-20 Hewlett-Packard Development Company, L.P. Apparatus and method for enhancing performance of a computer system
US7322028B2 (en) * 2001-09-19 2008-01-22 Belovich Steven G Method and system for providing a virus-immune, rule-based cross-platform software system
US20090106353A1 (en) * 2001-09-19 2009-04-23 Belovich Steven G Method and system for providing an event auditing client server software arrangement
US8621077B2 (en) * 2001-09-21 2013-12-31 Mcafee, Inc. Distribution of security policies for small to medium-sized organizations
US20030070087A1 (en) * 2001-10-05 2003-04-10 Dmitry Gryaznov System and method for automatic updating of multiple anti-virus programs
DE10161321A1 (en) * 2001-12-13 2003-06-26 Siemens Ag Updating method for electronically modifiable components of automation apparatus for optimization of control program, using information relating to dependencies between components and hardware
US7574323B2 (en) * 2001-12-17 2009-08-11 Wireless Valley Communications, Inc. Textual and graphical demarcation of location, and interpretation of measurements
US6795084B2 (en) 2002-01-02 2004-09-21 Canon Kabushiki Kaisha Heuristic determination of color reproduction parameters
US20030131226A1 (en) * 2002-01-04 2003-07-10 Spencer Donald J. Dynamic distributed configuration management system
US7305395B1 (en) * 2002-04-24 2007-12-04 Oracle International Corporation Centralized storage and management of database parameters
US7120652B2 (en) * 2002-04-25 2006-10-10 Sun Microsystems, Inc. Method, system and program for determining version of storage devices and programs indicated in the resource information installed in the computer system
US7099816B2 (en) * 2002-06-17 2006-08-29 International Business Machines Corporation Method, system and article of manufacture for an analytic modeling technique for handling multiple objectives
US6974082B2 (en) * 2002-07-15 2005-12-13 Monode Marking Products, Inc. Hardware integration system
US20040054709A1 (en) * 2002-09-13 2004-03-18 Bess Charles E. Assessment of capability of computing environment to meet an uptime criteria
US7647254B2 (en) * 2002-11-20 2010-01-12 Acer Incorporated Method and system for providing customized computer solutions
US7295119B2 (en) 2003-01-22 2007-11-13 Wireless Valley Communications, Inc. System and method for indicating the presence or physical location of persons or devices in a site specific representation of a physical environment
US7295960B2 (en) * 2003-01-22 2007-11-13 Wireless Valley Communications, Inc. System and method for automated placement or configuration of equipment for obtaining desired network performance objectives
US8122106B2 (en) 2003-03-06 2012-02-21 Microsoft Corporation Integrating design, deployment, and management phases for systems
US7890543B2 (en) 2003-03-06 2011-02-15 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US20040210623A1 (en) * 2003-03-06 2004-10-21 Aamer Hydrie Virtual network topology generation
US7072807B2 (en) 2003-03-06 2006-07-04 Microsoft Corporation Architecture for distributed computing system and automated design, deployment, and management of distributed applications
US7689676B2 (en) 2003-03-06 2010-03-30 Microsoft Corporation Model-based policy application
US20040259554A1 (en) * 2003-04-23 2004-12-23 Rappaport Theodore S. System and method for ray tracing using reception surfaces
US20040259555A1 (en) * 2003-04-23 2004-12-23 Rappaport Theodore S. System and method for predicting network performance and position location using multiple table lookups
EP1486867A1 (en) * 2003-06-12 2004-12-15 Sap Ag Adapting software service to environment of computer
US7613822B2 (en) 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US7590736B2 (en) 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7636917B2 (en) 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7606929B2 (en) 2003-06-30 2009-10-20 Microsoft Corporation Network load balancing with connection manipulation
US7567504B2 (en) 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US20050033625A1 (en) * 2003-08-06 2005-02-10 International Business Machines Corporation Method, apparatus and program storage device for scheduling the performance of maintenance tasks to maintain a system environment
US7266677B1 (en) * 2003-09-25 2007-09-04 Rockwell Automation Technologies, Inc. Application modifier based on operating environment parameters
US7778422B2 (en) 2004-02-27 2010-08-17 Microsoft Corporation Security associations for devices
US20050246529A1 (en) 2004-04-30 2005-11-03 Microsoft Corporation Isolated persistent identity storage for authentication of computing devies
US20050289296A1 (en) * 2004-06-23 2005-12-29 Sridhar Balasubramanian SAN based application recognition (SBAR) for RAID controller
JP4169157B2 (en) * 2004-10-04 2008-10-22 インターナショナル・ビジネス・マシーンズ・コーポレーション Management server, system and program using the same
DE102004062967A1 (en) * 2004-12-28 2006-07-06 Röllgen, Bernd Configuration method for devices in computer network involves sending specifications for change of settings by reading module whereby data can be supplemented by rules and guidelines known to the procedure
US7716631B1 (en) * 2005-01-20 2010-05-11 Sprint Communications Company L.P. Architecture blueprint tool and method
US7353378B2 (en) * 2005-02-18 2008-04-01 Hewlett-Packard Development Company, L.P. Optimizing computer system
WO2006100011A1 (en) * 2005-03-23 2006-09-28 Siemens Aktiengesellschaft A configuration of programs
US7370039B2 (en) * 2005-04-05 2008-05-06 International Business Machines Corporation Method and system for optimizing configuration classification of software
US8489728B2 (en) * 2005-04-15 2013-07-16 Microsoft Corporation Model-based system monitoring
US7802144B2 (en) * 2005-04-15 2010-09-21 Microsoft Corporation Model-based system monitoring
US20060235664A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Model-based capacity planning
US7797147B2 (en) * 2005-04-15 2010-09-14 Microsoft Corporation Model-based system monitoring
US20060253472A1 (en) * 2005-05-03 2006-11-09 Wasserman Theodore J System, method, and service for automatically determining an initial sizing of a hardware configuration for a database system running a business intelligence workload
US8549513B2 (en) 2005-06-29 2013-10-01 Microsoft Corporation Model-based virtual system provisioning
US20070005320A1 (en) * 2005-06-29 2007-01-04 Microsoft Corporation Model-based configuration management
US7941309B2 (en) 2005-11-02 2011-05-10 Microsoft Corporation Modeling IT operations/policies
US7711360B2 (en) * 2005-11-08 2010-05-04 Siemens Aktiengesellschaft Radio frequency planning with consideration of inter-building effects
US7583855B2 (en) * 2006-02-23 2009-09-01 Siemens Aktiengesellschaft Signal source data input for radio frequency planning
US7379829B2 (en) * 2006-02-23 2008-05-27 Siemens Aktiengesellschaft Method and apparatus for automated characterization of objects with unknown RF characteristics
US20070239718A1 (en) * 2006-03-31 2007-10-11 Baxter Robert A Configuring communication systems based on performance metrics
US20070245028A1 (en) * 2006-03-31 2007-10-18 Baxter Robert A Configuring content in an interactive media system
US20070233694A1 (en) * 2006-03-31 2007-10-04 Baxter Robert A Configuring interactive media systems based on performance metrics
US20070233693A1 (en) * 2006-03-31 2007-10-04 Baxter Robert A Configuring a communication protocol of an interactive media system
US7756973B2 (en) * 2006-04-27 2010-07-13 International Business Machines Corporation Identifying a configuration for an application in a production environment
US20080075051A1 (en) * 2006-09-27 2008-03-27 Baris Dundar Methods, apparatus and articles for radio frequency planning
US7870543B2 (en) * 2006-12-08 2011-01-11 Hewlett-Packard Development Company, L.P. Dynamic tuning of user-space process
US8234644B2 (en) * 2007-07-12 2012-07-31 International Business Machines Corporation Selecting a system management product for performance of system management tasks
US20090240802A1 (en) * 2008-03-18 2009-09-24 Hewlett-Packard Development Company L.P. Method and apparatus for self tuning network stack
WO2011008933A1 (en) * 2009-07-15 2011-01-20 Consumer Software International, Inc. System and method for optimizing and digitally correcting errors on a computer system
US9098333B1 (en) 2010-05-07 2015-08-04 Ziften Technologies, Inc. Monitoring computer process resource usage
CN102331916A (en) * 2010-07-13 2012-01-25 鸿富锦精密工业(深圳)有限公司 System and method for automatically adjusting parameters of display
US9588652B2 (en) 2011-12-12 2017-03-07 International Business Machines Corporation Providing feedback for screen sharing
US20130151624A1 (en) 2011-12-12 2013-06-13 International Business Machines Corporation Context-Sensitive Collaboration Channels
US9852432B2 (en) 2011-12-12 2017-12-26 International Business Machines Corporation Customizing a presentation based on preferences of an audience
US9124657B2 (en) 2011-12-14 2015-09-01 International Business Machines Corporation Dynamic screen sharing for optimal performance
US9141264B2 (en) * 2011-12-14 2015-09-22 International Business Machines Corporation Variable refresh rates for portions of shared screens
US9275377B2 (en) * 2012-06-15 2016-03-01 Nvidia Corporation System, method, and computer program product for determining a monotonic set of presets
US10668386B2 (en) 2012-07-06 2020-06-02 Nvidia Corporation System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US9250931B2 (en) * 2012-07-06 2016-02-02 Nvidia Corporation System, method, and computer program product for calculating settings for a device, utilizing one or more constraints
US9201670B2 (en) * 2012-07-06 2015-12-01 Nvidia Corporation System, method, and computer program product for determining whether parameter configurations meet predetermined criteria
US10509658B2 (en) * 2012-07-06 2019-12-17 Nvidia Corporation System, method, and computer program product for simultaneously determining settings for a plurality of parameter variations
US9286247B2 (en) * 2012-07-06 2016-03-15 Nvidia Corporation System, method, and computer program product for determining settings for a device by utilizing a directed acyclic graph containing a plurality of directed nodes each with an associated speed and image quality
US9092573B2 (en) 2012-07-06 2015-07-28 Nvidia Corporation System, method, and computer program product for testing device parameters
CN103677754A (en) * 2012-09-21 2014-03-26 国际商业机器公司 Method and system for parallel structure for optimizing application program
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US9665474B2 (en) 2013-03-15 2017-05-30 Microsoft Technology Licensing, Llc Relationships derived from trace data
US9575874B2 (en) 2013-04-20 2017-02-21 Microsoft Technology Licensing, Llc Error list and bug report analysis for configuring an application tracer
US20150026073A1 (en) * 2013-07-18 2015-01-22 Level 3 Communications, LLC. Systems and methods for generating customer solutions
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
US10843084B2 (en) 2013-10-30 2020-11-24 Nvidia Corporation Method and system for gathering time-varying metrics
US9772927B2 (en) 2013-11-13 2017-09-26 Microsoft Technology Licensing, Llc User interface for selecting tracing origins for aggregating classes of trace data
US10878770B2 (en) 2013-12-02 2020-12-29 Nvidia Corporation Method and system for customizing optimal settings using end-user preferences
CN104239107A (en) * 2014-09-23 2014-12-24 三星电子(中国)研发中心 Application customizing method and application customizing device
US9846607B2 (en) 2015-03-12 2017-12-19 Nvidia Corporation Method and system for associating crash reports with end user analytics
US9626155B2 (en) * 2015-04-28 2017-04-18 Qualcomm Incorporated Determining recommended optimization strategies for software development
WO2016209268A1 (en) 2015-06-26 2016-12-29 Hewlett Packard Enterprise Development Lp Self-tune controller
US11606392B2 (en) 2020-05-29 2023-03-14 Mcafee, Llc System for tuning a device having security software for security and performance
CN114490015A (en) * 2020-11-13 2022-05-13 华为技术有限公司 Method and device for configuring computing mode and computing equipment
CN113987379A (en) * 2021-10-19 2022-01-28 山东百盟信息技术有限公司 Method and device for optimizing log module Histogram in webpage rendering engine

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263164A (en) * 1991-01-09 1993-11-16 Verifone, Inc. Method and structure for determining transaction system hardware and software configurations
US5428791A (en) * 1992-07-18 1995-06-27 International Computers Limited Configuration mechanism for a computer system having generic user interface and component-specific builder modules
US5436748A (en) * 1992-04-30 1995-07-25 Societe Anonyme Dite: Alcatel Cit Automatically configurable optical system for connecting customer premises networks to a switching center of a telecommuncation network
US5497490A (en) * 1991-10-11 1996-03-05 International Business Machines Corporation Automatic reconfiguration of alterable systems
US5506952A (en) * 1994-01-03 1996-04-09 International Business Machines Corporation Method and system for guiding the formation of a correctly structured instruction for data processing systems
US5530887A (en) * 1991-02-22 1996-06-25 International Business Machines Corporation Methods and apparatus for providing automatic hardware device identification in computer systems that include multi-card adapters and/or multi-card planar complexes
US5613125A (en) * 1994-06-17 1997-03-18 Motorola, Inc. Method and system for selectively defining hardware parameters in an executable operating system program
US5668995A (en) * 1994-04-22 1997-09-16 Ncr Corporation Method and apparatus for capacity planning for multiprocessor computer systems in client/server environments
US5668992A (en) * 1994-08-01 1997-09-16 International Business Machines Corporation Self-configuring computer system
US5713009A (en) * 1995-09-08 1998-01-27 Digital Equipment Corporation Method and apparatus for configuring a computer system
US5745880A (en) * 1994-10-03 1998-04-28 The Sabre Group, Inc. System to predict optimum computer platform
US5784539A (en) * 1996-11-26 1998-07-21 Client-Server-Networking Solutions, Inc. Quality driven expert system
US5809282A (en) * 1995-06-07 1998-09-15 Grc International, Inc. Automated network simulation and optimization system
US5815152A (en) * 1995-04-18 1998-09-29 Logical Software Solutions Corporation Method and apparatus for defining and evaluating a graphic rule
US5944819A (en) * 1993-02-18 1999-08-31 Hewlett-Packard Company Method and system to optimize software execution by a computer using hardware attributes of the computer
US5978594A (en) * 1994-09-30 1999-11-02 Bmc Software, Inc. System for managing computer resources across a distributed computing environment by first reading discovery information about how to determine system resources presence
US6177860B1 (en) * 1997-11-17 2001-01-23 International Business Machines Corporation Method and economical direct connected apparatus for deploying and tracking computers

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263164A (en) * 1991-01-09 1993-11-16 Verifone, Inc. Method and structure for determining transaction system hardware and software configurations
US5530887A (en) * 1991-02-22 1996-06-25 International Business Machines Corporation Methods and apparatus for providing automatic hardware device identification in computer systems that include multi-card adapters and/or multi-card planar complexes
US5497490A (en) * 1991-10-11 1996-03-05 International Business Machines Corporation Automatic reconfiguration of alterable systems
US5436748A (en) * 1992-04-30 1995-07-25 Societe Anonyme Dite: Alcatel Cit Automatically configurable optical system for connecting customer premises networks to a switching center of a telecommuncation network
US5428791A (en) * 1992-07-18 1995-06-27 International Computers Limited Configuration mechanism for a computer system having generic user interface and component-specific builder modules
US5944819A (en) * 1993-02-18 1999-08-31 Hewlett-Packard Company Method and system to optimize software execution by a computer using hardware attributes of the computer
US5506952A (en) * 1994-01-03 1996-04-09 International Business Machines Corporation Method and system for guiding the formation of a correctly structured instruction for data processing systems
US5668995A (en) * 1994-04-22 1997-09-16 Ncr Corporation Method and apparatus for capacity planning for multiprocessor computer systems in client/server environments
US5613125A (en) * 1994-06-17 1997-03-18 Motorola, Inc. Method and system for selectively defining hardware parameters in an executable operating system program
US5668992A (en) * 1994-08-01 1997-09-16 International Business Machines Corporation Self-configuring computer system
US5978594A (en) * 1994-09-30 1999-11-02 Bmc Software, Inc. System for managing computer resources across a distributed computing environment by first reading discovery information about how to determine system resources presence
US5745880A (en) * 1994-10-03 1998-04-28 The Sabre Group, Inc. System to predict optimum computer platform
US5815152A (en) * 1995-04-18 1998-09-29 Logical Software Solutions Corporation Method and apparatus for defining and evaluating a graphic rule
US5809282A (en) * 1995-06-07 1998-09-15 Grc International, Inc. Automated network simulation and optimization system
US5822565A (en) * 1995-09-08 1998-10-13 Digital Equipment Corporation Method and apparatus for configuring a computer system
US5713009A (en) * 1995-09-08 1998-01-27 Digital Equipment Corporation Method and apparatus for configuring a computer system
US5784539A (en) * 1996-11-26 1998-07-21 Client-Server-Networking Solutions, Inc. Quality driven expert system
US6177860B1 (en) * 1997-11-17 2001-01-23 International Business Machines Corporation Method and economical direct connected apparatus for deploying and tracking computers

Cited By (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030204714A1 (en) * 2002-04-24 2003-10-30 Rothman Michael A. Methods and apparatuses for uniform configuration for a computer system
US20050034117A1 (en) * 2003-08-06 2005-02-10 Hitachi, Ltd. Information processing apparatus and an information processing system
US7757216B2 (en) * 2003-12-10 2010-07-13 Orcle International Corporation Application server performance tuning client interface
US20050132335A1 (en) * 2003-12-10 2005-06-16 Jonathan Maron Application performance tuning server-side component
US20050144267A1 (en) * 2003-12-10 2005-06-30 Jonathan Maron Application server performance tuning client interface
US7827535B2 (en) * 2003-12-10 2010-11-02 Oracle International Corporation Application performance tuning server-side component
US20050160373A1 (en) * 2004-01-16 2005-07-21 International Business Machines Corporation Method and apparatus for executing multiple file management operations
US7614007B2 (en) * 2004-01-16 2009-11-03 International Business Machines Corporation Executing multiple file management operations
US20060047794A1 (en) * 2004-09-02 2006-03-02 Microsoft Corporation Application of genetic algorithms to computer system tuning
US20070061429A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Optimizing utilization of application resources
US20090037824A1 (en) * 2007-07-30 2009-02-05 Oracle International Corporation Simplifying determination of whether application specific parameters are setup for optimal performance of associated applications
US8572593B2 (en) * 2007-07-30 2013-10-29 Oracle International Corporation Simplifying determination of whether application specific parameters are setup for optimal performance of associated applications
US10284454B2 (en) 2007-11-30 2019-05-07 Activision Publishing, Inc. Automatic increasing of capacity of a virtual space in a virtual world
US10627983B2 (en) 2007-12-24 2020-04-21 Activision Publishing, Inc. Generating data for managing encounters in a virtual world environment
US10981069B2 (en) 2008-03-07 2021-04-20 Activision Publishing, Inc. Methods and systems for determining the authenticity of copied objects in a virtual environment
US8321803B2 (en) * 2008-06-19 2012-11-27 International Business Machines Corporation Aggregating service components
US20090319951A1 (en) * 2008-06-19 2009-12-24 International Business Machines Corporation Aggregating Service Components
US10376793B2 (en) 2010-02-18 2019-08-13 Activision Publishing, Inc. Videogame system and method that enables characters to earn virtual fans by completing secondary objectives
US10421019B2 (en) 2010-05-12 2019-09-24 Activision Publishing, Inc. System and method for enabling players to participate in asynchronous, competitive challenges
US10137376B2 (en) 2012-12-31 2018-11-27 Activision Publishing, Inc. System and method for creating and streaming augmented game sessions
US11446582B2 (en) 2012-12-31 2022-09-20 Activision Publishing, Inc. System and method for streaming game sessions to third party gaming consoles
US10905963B2 (en) 2012-12-31 2021-02-02 Activision Publishing, Inc. System and method for creating and streaming augmented game sessions
CN103942069B (en) * 2014-04-01 2017-06-09 西安睿控创合电子科技有限公司 A kind of quick starting guide method based on X86 platform Vxworks operating systems
US10376792B2 (en) 2014-07-03 2019-08-13 Activision Publishing, Inc. Group composition matchmaking system and method for multiplayer video games
US10857468B2 (en) 2014-07-03 2020-12-08 Activision Publishing, Inc. Systems and methods for dynamically weighing match variables to better tune player matches
US10322351B2 (en) 2014-07-03 2019-06-18 Activision Publishing, Inc. Matchmaking system and method for multiplayer video games
US10286326B2 (en) 2014-07-03 2019-05-14 Activision Publishing, Inc. Soft reservation system and method for multiplayer video games
US11351466B2 (en) 2014-12-05 2022-06-07 Activision Publishing, Ing. System and method for customizing a replay of one or more game events in a video game
US10668381B2 (en) 2014-12-16 2020-06-02 Activision Publishing, Inc. System and method for transparently styling non-player characters in a multiplayer video game
US10118099B2 (en) 2014-12-16 2018-11-06 Activision Publishing, Inc. System and method for transparently styling non-player characters in a multiplayer video game
US11896905B2 (en) 2015-05-14 2024-02-13 Activision Publishing, Inc. Methods and systems for continuing to execute a simulation after processing resources go offline
US11857876B2 (en) 2015-05-14 2024-01-02 Activision Publishing, Inc. System and method for providing dynamically variable maps in a video game
US11420119B2 (en) 2015-05-14 2022-08-23 Activision Publishing, Inc. Systems and methods for initiating conversion between bounded gameplay sessions and unbounded gameplay sessions
US11524237B2 (en) 2015-05-14 2022-12-13 Activision Publishing, Inc. Systems and methods for distributing the generation of nonplayer characters across networked end user devices for use in simulated NPC gameplay sessions
US10286314B2 (en) 2015-05-14 2019-05-14 Activision Publishing, Inc. System and method for providing continuous gameplay in a multiplayer video game through an unbounded gameplay session
US10315113B2 (en) 2015-05-14 2019-06-11 Activision Publishing, Inc. System and method for simulating gameplay of nonplayer characters distributed across networked end user devices
US11224807B2 (en) 2015-05-14 2022-01-18 Activision Publishing, Inc. System and method for providing dynamically variable maps in a video game
US10486068B2 (en) 2015-05-14 2019-11-26 Activision Publishing, Inc. System and method for providing dynamically variable maps in a video game
US10668367B2 (en) 2015-06-15 2020-06-02 Activision Publishing, Inc. System and method for uniquely identifying physical trading cards and incorporating trading card game items in a video game
US10213682B2 (en) 2015-06-15 2019-02-26 Activision Publishing, Inc. System and method for uniquely identifying physical trading cards and incorporating trading card game items in a video game
US10471348B2 (en) 2015-07-24 2019-11-12 Activision Publishing, Inc. System and method for creating and sharing customized video game weapon configurations in multiplayer video games via one or more social networks
US10835818B2 (en) 2015-07-24 2020-11-17 Activision Publishing, Inc. Systems and methods for customizing weapons and sharing customized weapons via social networks
US10099140B2 (en) 2015-10-08 2018-10-16 Activision Publishing, Inc. System and method for generating personalized messaging campaigns for video game players
US11185784B2 (en) 2015-10-08 2021-11-30 Activision Publishing, Inc. System and method for generating personalized messaging campaigns for video game players
US10898813B2 (en) 2015-10-21 2021-01-26 Activision Publishing, Inc. Methods and systems for generating and providing virtual objects and/or playable recreations of gameplay
US10245509B2 (en) 2015-10-21 2019-04-02 Activision Publishing, Inc. System and method of inferring user interest in different aspects of video game streams
US10232272B2 (en) 2015-10-21 2019-03-19 Activision Publishing, Inc. System and method for replaying video game streams
US10376781B2 (en) 2015-10-21 2019-08-13 Activision Publishing, Inc. System and method of generating and distributing video game streams
US11679333B2 (en) 2015-10-21 2023-06-20 Activision Publishing, Inc. Methods and systems for generating a video game stream based on an obtained game log
US11310346B2 (en) 2015-10-21 2022-04-19 Activision Publishing, Inc. System and method of generating and distributing video game streams
US10694352B2 (en) 2015-10-28 2020-06-23 Activision Publishing, Inc. System and method of using physical objects to control software access
US10102098B2 (en) 2015-12-24 2018-10-16 Industrial Technology Research Institute Method and system for recommending application parameter setting and system specification setting in distributed computation
US10226703B2 (en) 2016-04-01 2019-03-12 Activision Publishing, Inc. System and method of generating and providing interactive annotation items based on triggering events in a video game
US11439909B2 (en) 2016-04-01 2022-09-13 Activision Publishing, Inc. Systems and methods of generating and sharing social messages based on triggering events in a video game
US10300390B2 (en) 2016-04-01 2019-05-28 Activision Publishing, Inc. System and method of automatically annotating gameplay of a video game based on triggering events
US10807003B2 (en) 2016-04-29 2020-10-20 Activision Publishing, Inc. Systems and methods for determining distances required to achieve a line of site between nodes
US10226701B2 (en) 2016-04-29 2019-03-12 Activision Publishing, Inc. System and method for identifying spawn locations in a video game
US10179289B2 (en) 2016-06-21 2019-01-15 Activision Publishing, Inc. System and method for reading graphically-encoded identifiers from physical trading cards through image-based template matching
US11189084B2 (en) 2016-07-29 2021-11-30 Activision Publishing, Inc. Systems and methods for executing improved iterative optimization processes to personify blendshape rigs
US10586380B2 (en) 2016-07-29 2020-03-10 Activision Publishing, Inc. Systems and methods for automating the animation of blendshape rigs
US10573065B2 (en) 2016-07-29 2020-02-25 Activision Publishing, Inc. Systems and methods for automating the personalization of blendshape rigs based on performance capture data
US10709981B2 (en) 2016-11-17 2020-07-14 Activision Publishing, Inc. Systems and methods for the real-time generation of in-game, locally accessible barrier-aware heatmaps
US10702779B2 (en) 2016-11-17 2020-07-07 Activision Publishing, Inc. Bandwidth and processing efficient heatmaps
US11207596B2 (en) 2016-11-17 2021-12-28 Activision Publishing, Inc. Systems and methods for the real-time generation of in-game, locally accessible barrier-aware heatmaps
US11213753B2 (en) 2016-11-17 2022-01-04 Activision Publishing, Inc. Systems and methods for the generation of heatmaps
US10463964B2 (en) 2016-11-17 2019-11-05 Activision Publishing, Inc. Systems and methods for the real-time generation of in-game, locally accessible heatmaps
US10987588B2 (en) 2016-11-29 2021-04-27 Activision Publishing, Inc. System and method for optimizing virtual games
US10500498B2 (en) 2016-11-29 2019-12-10 Activision Publishing, Inc. System and method for optimizing virtual games
US10991110B2 (en) 2016-12-06 2021-04-27 Activision Publishing, Inc. Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional
US10650539B2 (en) 2016-12-06 2020-05-12 Activision Publishing, Inc. Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional
US10055880B2 (en) 2016-12-06 2018-08-21 Activision Publishing, Inc. Methods and systems to modify a two dimensional facial image to increase dimensional depth and generate a facial image that appears three dimensional
US11423556B2 (en) 2016-12-06 2022-08-23 Activision Publishing, Inc. Methods and systems to modify two dimensional facial images in a video to generate, in real-time, facial images that appear three dimensional
US10861079B2 (en) 2017-02-23 2020-12-08 Activision Publishing, Inc. Flexible online pre-ordering system for media
US11741530B2 (en) 2017-02-23 2023-08-29 Activision Publishing, Inc. Flexible online pre-ordering system for media
US10818060B2 (en) 2017-09-05 2020-10-27 Activision Publishing, Inc. Systems and methods for guiding motion capture actors using a motion reference system
US10561945B2 (en) 2017-09-27 2020-02-18 Activision Publishing, Inc. Methods and systems for incentivizing team cooperation in multiplayer gaming environments
US10974150B2 (en) 2017-09-27 2021-04-13 Activision Publishing, Inc. Methods and systems for improved content customization in multiplayer gaming environments
US11040286B2 (en) 2017-09-27 2021-06-22 Activision Publishing, Inc. Methods and systems for improved content generation in multiplayer gaming environments
US11117055B2 (en) 2017-12-06 2021-09-14 Activision Publishing, Inc. Systems and methods for validating leaderboard gaming data
US10537809B2 (en) 2017-12-06 2020-01-21 Activision Publishing, Inc. System and method for validating video gaming data
US10463971B2 (en) 2017-12-06 2019-11-05 Activision Publishing, Inc. System and method for validating video gaming data
US10981051B2 (en) 2017-12-19 2021-04-20 Activision Publishing, Inc. Synchronized, fully programmable game controllers
US11911689B2 (en) 2017-12-19 2024-02-27 Activision Publishing, Inc. Synchronized, fully programmable game controllers
US10864443B2 (en) 2017-12-22 2020-12-15 Activision Publishing, Inc. Video game content aggregation, normalization, and publication systems and methods
US10596471B2 (en) 2017-12-22 2020-03-24 Activision Publishing, Inc. Systems and methods for enabling audience participation in multi-player video game play sessions
US11413536B2 (en) 2017-12-22 2022-08-16 Activision Publishing, Inc. Systems and methods for managing virtual items across multiple video game environments
US11666831B2 (en) 2017-12-22 2023-06-06 Activision Publishing, Inc. Systems and methods for determining game events based on a crowd advantage of one or more players in the course of a multi-player video game play session
US11148063B2 (en) 2017-12-22 2021-10-19 Activision Publishing, Inc. Systems and methods for providing a crowd advantage to one or more players in the course of a multi-player video game play session
US10765948B2 (en) 2017-12-22 2020-09-08 Activision Publishing, Inc. Video game content aggregation, normalization, and publication systems and methods
US11806626B2 (en) 2017-12-22 2023-11-07 Activision Publishing, Inc. Systems and methods for incentivizing player participation in bonus game play sessions
US11278813B2 (en) 2017-12-22 2022-03-22 Activision Publishing, Inc. Systems and methods for enabling audience participation in bonus game play sessions
US11263670B2 (en) 2018-11-19 2022-03-01 Activision Publishing, Inc. Systems and methods for dynamically modifying video game content based on non-video gaming content being concurrently experienced by a user
US11192028B2 (en) 2018-11-19 2021-12-07 Activision Publishing, Inc. Systems and methods for the real-time customization of video game content based on player data
US11883745B2 (en) 2018-11-19 2024-01-30 Activision Publishing, Inc. Systems and methods for providing a tailored video game based on a player defined time period
US11704703B2 (en) 2018-11-19 2023-07-18 Activision Publishing, Inc. Systems and methods for dynamically modifying video game content based on non-video gaming content being concurrently experienced by a user
US11115712B2 (en) 2018-12-15 2021-09-07 Activision Publishing, Inc. Systems and methods for indexing, searching for, and retrieving digital media
US11679330B2 (en) 2018-12-18 2023-06-20 Activision Publishing, Inc. Systems and methods for generating improved non-player characters
US11305191B2 (en) 2018-12-20 2022-04-19 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
US11344808B2 (en) 2019-06-28 2022-05-31 Activision Publishing, Inc. Systems and methods for dynamically generating and modulating music based on gaming events, player profiles and/or player reactions
US11097193B2 (en) 2019-09-11 2021-08-24 Activision Publishing, Inc. Methods and systems for increasing player engagement in multiplayer gaming environments
US11423605B2 (en) 2019-11-01 2022-08-23 Activision Publishing, Inc. Systems and methods for remastering a game space while maintaining the underlying game simulation
US11712627B2 (en) 2019-11-08 2023-08-01 Activision Publishing, Inc. System and method for providing conditional access to virtual gaming items
US11537209B2 (en) 2019-12-17 2022-12-27 Activision Publishing, Inc. Systems and methods for guiding actors using a motion capture reference system
US11709551B2 (en) 2019-12-17 2023-07-25 Activision Publishing, Inc. Systems and methods for guiding actors using a motion capture reference system
US11420122B2 (en) 2019-12-23 2022-08-23 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
US11839814B2 (en) 2019-12-23 2023-12-12 Activision Publishing, Inc. Systems and methods for controlling camera perspectives, movements, and displays of video game gameplay
US11563774B2 (en) 2019-12-27 2023-01-24 Activision Publishing, Inc. Systems and methods for tracking and identifying phishing website authors
US11524234B2 (en) 2020-08-18 2022-12-13 Activision Publishing, Inc. Multiplayer video games with virtual characters having dynamically modified fields of view
US11351459B2 (en) 2020-08-18 2022-06-07 Activision Publishing, Inc. Multiplayer video games with virtual characters having dynamically generated attribute profiles unconstrained by predefined discrete values
US11833423B2 (en) 2020-09-29 2023-12-05 Activision Publishing, Inc. Methods and systems for generating level of detail visual assets in a video game
US11724188B2 (en) 2020-09-29 2023-08-15 Activision Publishing, Inc. Methods and systems for selecting a level of detail visual asset during the execution of a video game
US11717753B2 (en) 2020-09-29 2023-08-08 Activision Publishing, Inc. Methods and systems for generating modified level of detail visual assets in a video game
US11794104B2 (en) 2020-11-11 2023-10-24 Activision Publishing, Inc. Systems and methods for pivoting player-controlled avatars in video games
US11439904B2 (en) 2020-11-11 2022-09-13 Activision Publishing, Inc. Systems and methods for imparting dynamic and realistic movement to player-controlled avatars in video games
US11794107B2 (en) 2020-12-30 2023-10-24 Activision Publishing, Inc. Systems and methods for improved collision detection in video games
US11853439B2 (en) 2020-12-30 2023-12-26 Activision Publishing, Inc. Distributed data storage system providing enhanced security

Also Published As

Publication number Publication date
US6059842A (en) 2000-05-09

Similar Documents

Publication Publication Date Title
USRE38865E1 (en) System and method for optimizing computer software and hardware
US6163317A (en) Method and apparatus for dynamically grouping objects
US5767852A (en) Priority selection on a graphical interface
EP0747804B1 (en) Selection facilitation on a graphical interface
US8621032B2 (en) Method and apparatus for intuitively administering networked computer systems
US6057834A (en) Iconic subscription schedule controller for a graphic user interface
US5742286A (en) Graphical user interface system and method for multiple simultaneous targets
AU785213B2 (en) Method and apparatus for intuitively administering networked computer systems
CA2736493C (en) Displaying menu for accessing hierarchial content data including caching multiple menu states
US6016146A (en) Method and apparatus for enhancing template creation and manipulation in a graphical user interface
JP4290871B2 (en) A computer system for the display and interaction of data organized in a hierarchical data structure.
US6289380B1 (en) Network management system using virtual reality techniques to display and simulate navigation to network components
US5287448A (en) Method and apparatus for providing help information to users of computers
US5333256A (en) Methods of monitoring the status of an application program
US5546520A (en) Method, system, and memory for reshaping the frame edges of a window around information displayed in the window
US20060224992A1 (en) Graphical user interface management
US5956032A (en) Signalling a user attempt to resize a window beyond its limit
US6344859B1 (en) Data processor controlled display system with a plurality of selectable basic function interfaces for the control of varying types of customer requirements and with additional customized functions
US20030222915A1 (en) Data processor controlled display system with drag and drop movement of displayed items from source to destination screen positions and interactive modification of dragged items during the movement
US20070143324A1 (en) Graphical user interface icon for documents with status indicator
US7376898B1 (en) Methods and apparatus for managing resources
WO2009062971A1 (en) System and method for providing coupled applications
US6335745B1 (en) Method and system for invoking a function of a graphical object in a graphical user interface
JP3454285B2 (en) Data processing device and data processing method
US20060020902A1 (en) Interactive graphical user interfaces for computer display systems with simplified implementation for exposing completely hidden windows

Legal Events

Date Code Title Description
FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12

AS Assignment

Owner name: ACTIVISION PUBLISHING, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:029900/0285

Effective date: 20121231

AS Assignment

Owner name: BANK OF AMERICA, N.A., TEXAS

Free format text: SECURITY AGREEMENT;ASSIGNOR:ACTIVISION PUBLISHING, INC.;REEL/FRAME:032240/0257

Effective date: 20140131

AS Assignment

Owner name: ACTIVISION ENTERTAINMENT HOLDINGS, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:040381/0487

Effective date: 20161014

Owner name: ACTIVISION BLIZZARD INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:040381/0487

Effective date: 20161014

Owner name: BLIZZARD ENTERTAINMENT, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:040381/0487

Effective date: 20161014

Owner name: ACTIVISION ENTERTAINMENT HOLDINGS, INC., CALIFORNI

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:040381/0487

Effective date: 20161014

Owner name: ACTIVISION PUBLISHING, INC., CALIFORNIA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:BANK OF AMERICA, N.A.;REEL/FRAME:040381/0487

Effective date: 20161014