IP Library Granted Patent US 9,110,595
Granted Patent B2
US 9,110,595 · App. 13/407,412 · Granted Aug 18, 2015

Systems and methods for enhancing performance of software applications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,110,595
App. No.
13/407,412
Granted
Aug 18, 2015
Kind
B2
Abstract

A system for enhancing performance of a software application obtains a list of files to be processed by the software application, and sorts that list in the order of the physical position of files in the list on a hard drive. The files are loaded in the sorted order which can decrease or minimize the total file seeking time, thereby increasing the speed of execution of the software.

Claims (53)

1. A computer-implemented method of loading, in computer memory, files required by a boot program, the method comprising:

using at least one data processing device to:

record, during at least one execution of the boot program, each file loaded in the computer memory;

store, for each of the loaded files, a respective file identifier in a first list of file identifiers;

store the first list on a non-volatile memory; and

access the stored first list during subsequent execution of the boot program;

for each file identifier in the accessed first list, (i) comparing a first attribute of the file corresponding to that file identifier with a predetermined threshold to identify whether retrieval of that file requires movement of a disk-head or access to a directory structure, and (ii) when the first attribute of that file exceeds the predetermined threshold, selectively adding that file identifier to a second list designated for files that require movement of the disk-head to access;

sorting the second list based on a second attribute of the files corresponding to the file identifiers in the second list;

selecting, in sorted order, a file identifier in the sorted second list;

loading the file corresponding to the selected file identifier; and

repeating the selecting and loading steps until each file identifier in the sorted second list is selected.

2. The method of claim 1 , wherein the boot program comprises at least one of a virus scanner, a spyware scanner, an adware scanner, a malware scanner, a backup program, a multicopy program, a compiler, and a data-mining program.

3. The method of claim 1 , wherein each of the file identifiers comprises a file entry in a directory record.

4. The method of claim 1 , wherein the second attribute comprises file location.

5. The method of claim 4 , wherein the location comprises a cluster location.

6. The method of claim 1 , wherein the first attribute comprises file size and the threshold is one Kbyte.

7. The method of claim 1 , further comprising, after loading the file, analyzing the file.

8. The method of claim 7 , wherein analyzing comprises scanning the loaded file for at least one of viruses, spyware, adware, and malware.

9. The method of claim 1 , wherein loading comprises storing the file in a cache memory, the method further comprising:

accessing the file from the cache memory; and

analyzing the accessed file.

10. The method of claim 1 , further comprising, for each file identifier in the accessed first list, analyzing the file corresponding to that file identifier when the first attribute of that file does not exceed the predetermined threshold.

11. The method of claim 1 , further comprising, for each file identifier in the accessed first list, accessing the file corresponding to that file identifier from the directory structure without use of the disk-head and analyzing the accessed file, when the first attribute of that file is less than or equal to the predetermined threshold.

12. The method of claim 1 , wherein the directory structure is a Master File Table in a file system database maintained by an operating system.

13. A system for enhancing performance of a software program, the system comprising:

a processor;

a hard drive;

a memory; and

a boot program stored on the hard drive, the boot program comprising:

a sorter module configured to:

(i) use the processor to:

record, during at least one execution of the boot program, each file loaded in the memory;

store, for each of the loaded files, a respective file identifier in a first list of file identifiers;

store the first list on the hard drive; and

access the stored first list during subsequent execution of the boot program;

(ii) for each file identifier in the first list, (a) compare a first attribute of the file corresponding to that file identifier with a predetermined threshold to identify whether retrieval of that file requires movement of a disk-head or access to a directory structure, and (b) when the first attribute of that file exceeds the predetermined threshold, selectively add that file identifier to a second list designated for files that require movement of the disk-head to access; and

(iii) use the processor to sort the second list based on a second attribute of the files corresponding to the file identifiers in the second list; and

a loader module configured to use the processor to:

select, in sorted order, each file identifier in the sorted second list; and

load the files corresponding to the selected file identifiers into the memory.

14. The system of claim 13 , wherein the boot program comprises at least one of a virus scanner, a spyware scanner, an adware scanner, a malware scanner, a backup program, a multicopy program, a compiler, and a data-mining program.

15. The system of claim 13 , wherein each of the file identifiers comprises a file entry in a directory record.

16. The system of claim 13 , wherein the second attribute comprises file location on the hard drive.

17. The system of claim 16 , wherein the file location comprises a cluster location.

18. The system of claim 13 , wherein the first attribute comprises file size and the threshold is one Kbyte.

19. The system of claim 13 , wherein the boot program further comprises an analyzer module configured to analyze each of the loaded files using the processor.

20. The system of claim 19 , wherein the analyzer module is further configured to scan each of the loaded files for at least one of viruses, spyware, adware, and malware.

21. The system of claim 13 , wherein the boot program further comprises an analyzer module, and wherein:

the loader module is configured to store the files in a cache memory; and

the analyzer module is configured to access the files from the cache memory, and to analyze the accessed files.

22. The system of claim 13 , wherein the boot program further comprises an analyzer module configured to analyze, for each file identifier in the first list, the file corresponding to that file identifier when the first attribute of that file does not exceed the predetermined threshold.

23. The system of claim 13 , wherein the sorter module is configured to, for each file identifier in the accessed first list, access the file corresponding to that file identifier from the directory structure without use of the disk-head and cause the accessed file to be analyzed, when the first attribute of that file is less than or equal to the predetermined threshold.

24. The system of claim 13 , wherein the directory structure is a Master File Table in a file system database maintained by an operating system.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2025
From: AVAST SOFTWARE S.R.O.
To: GEN DIGITAL AMERICAS S.R.O.
Reel/Frame 071777/0341 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2025
From: GEN DIGITAL AMERICAS S.R.O.
To: GEN DIGITAL INC.
Reel/Frame 071771/0767 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2021
From: CREDIT SUISSE INTERNATIONAL, AS COLLATERAL AGENT
To: AVAST SOFTWARE, S.R.O.; AVAST SOFTWARE B.V.
Reel/Frame 055726/0407 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2018
From: AVAST SOFTWARE B.V.
To: AVAST SOFTWARE S.R.O.
Reel/Frame 046876/0165 →
MERGER Recorded Oct 11, 2017
From: AVG TECHNOLOGIES HOLDINGS B.V.
To: AVG TECHNOLOGIES B.V.
Reel/Frame 043841/0844 →
MERGER Recorded Oct 11, 2017
From: AVG NETHERLANDS B.V.
To: AVG TECHNOLOGIES HOLDINGS B.V.
Reel/Frame 043841/0615 →
MERGER Recorded Oct 11, 2017
From: AVG TECHNOLOGIES B.V.
To: AVAST SOFTWARE B.V.
Reel/Frame 043841/0899 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2017
From: AVG NETHERLANDS B.V.
To: AVAST SOFTWARE B.V.
Reel/Frame 043603/0008 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVG NETHERLANDS B.V.
To: CREDIT SUISSE INTERNATIONAL, AS COLLATERAL AGENT
Reel/Frame 041111/0914 →
RELEASE OF SECURITY INTEREST Recorded Oct 3, 2016
From: HSBC BANK USA, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: LOCATION LABS, INC.; AVG NETHERLANDS B.V.
Reel/Frame 040205/0406 →
SECURITY INTEREST Recorded Oct 16, 2014
From: AVG NETHERLANDS B.V.; LOCATION LABS, INC.
To: HSBC BANK USA, N.A.
Reel/Frame 034012/0721 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2013
From: AVG TECHNOLOGIES CZ, S.R.O.
To: AVG NETHERLANDS B.V.
Reel/Frame 031007/0927 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2012
From: BEN-ITZHAK, YUVAL; BREITENBACHER, ING. ZDENEK; BRACEK, JIRI; NIX, JAROSLAV; VEJNAR, MARTIN; BENNA, TOMAS; JURIK, MARIAN; PICH, VACLAV
To: AVG TECHNOLOGIES CZ, S.R.O.
Reel/Frame 027829/0463 →