Closed Bug 1062074 Opened 10 years ago Closed 3 years ago

Make GeckoProfileDirectories.getProfilesINI cache the INIParser to minimize disk reads

Categories

(Firefox for Android Graveyard :: Profile Handling, defect)

All
Android
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: mfinkle, Unassigned)

Details

I'm not sure what the plans for bug 975212 were, but I noticed that BrowserApp.onCreate causes two distinct accesses to GeckoProfileDirectories and both open and read the profiles.ini file on the main thread.

Here are the "open" stacks, but there are also "read" stacks too.

D/StrictMode(18381): StrictMode policy violation; ~duration=537 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=31 violation=2
D/StrictMode(18381): 	at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1123)
D/StrictMode(18381): 	at libcore.io.BlockGuardOs.open(BlockGuardOs.java:106)
D/StrictMode(18381): 	at libcore.io.IoBridge.open(IoBridge.java:393)
D/StrictMode(18381): 	at java.io.FileInputStream.<init>(FileInputStream.java:78)
D/StrictMode(18381): 	at java.io.FileReader.<init>(FileReader.java:42)
D/StrictMode(18381): 	at org.mozilla.gecko.util.INIParser.parse(INIParser.java:86)
D/StrictMode(18381): 	at org.mozilla.gecko.util.INIParser.getSections(INIParser.java:74)
D/StrictMode(18381): 	at org.mozilla.gecko.GeckoProfileDirectories.findDefaultProfileName(GeckoProfileDirectories.java:142)
D/StrictMode(18381): 	at org.mozilla.gecko.GeckoProfile.getDefaultProfileName(GeckoProfile.java:570)
D/StrictMode(18381): 	at org.mozilla.gecko.BrowserApp.getDefaultProfileName(BrowserApp.java:2981)
D/StrictMode(18381): 	at org.mozilla.gecko.GeckoProfile.get(GeckoProfile.java:103)
D/StrictMode(18381): 	at org.mozilla.gecko.GeckoApp.getProfile(GeckoApp.java:1675)
D/StrictMode(18381): 	at org.mozilla.gecko.GeckoApp.onCreate(GeckoApp.java:1171)
D/StrictMode(18381): 	at org.mozilla.gecko.BrowserApp.onCreate(BrowserApp.java:483)

And

D/StrictMode(18381): StrictMode policy violation; ~duration=109 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=31 violation=2
D/StrictMode(18381): 	at android.os.StrictMode$AndroidBlockGuardPolicy.onReadFromDisk(StrictMode.java:1123)
D/StrictMode(18381): 	at libcore.io.BlockGuardOs.open(BlockGuardOs.java:106)
D/StrictMode(18381): 	at libcore.io.IoBridge.open(IoBridge.java:393)
D/StrictMode(18381): 	at java.io.FileInputStream.<init>(FileInputStream.java:78)
D/StrictMode(18381): 	at java.io.FileReader.<init>(FileReader.java:42)
D/StrictMode(18381): 	at org.mozilla.gecko.util.INIParser.parse(INIParser.java:86)
D/StrictMode(18381): 	at org.mozilla.gecko.util.INIParser.getSections(INIParser.java:74)
D/StrictMode(18381): 	at org.mozilla.gecko.GeckoProfileDirectories.findProfileDir(GeckoProfileDirectories.java:215)
D/StrictMode(18381): 	at org.mozilla.gecko.GeckoProfile.findProfileDir(GeckoProfile.java:582)
D/StrictMode(18381): 	at org.mozilla.gecko.GeckoProfile.forceCreate(GeckoProfile.java:403)
D/StrictMode(18381): 	at org.mozilla.gecko.GeckoProfile.getDir(GeckoProfile.java:391)
D/StrictMode(18381): 	at org.mozilla.gecko.GeckoProfile.getFile(GeckoProfile.java:416)
D/StrictMode(18381): 	at org.mozilla.gecko.db.SuggestedSites.<init>(SuggestedSites.java:158)
D/StrictMode(18381): 	at org.mozilla.gecko.BrowserApp.onCreate(BrowserApp.java:565)

Maybe GeckoProfileDirectories.getProfilesINI could cache the INIParser instead of creating a new one each time.
We have completed our launch of our new Firefox on Android. The development of the new versions use GitHub for issue tracking. If the bug report still reproduces in a current version of [Firefox on Android nightly](https://play.google.com/store/apps/details?id=org.mozilla.fenix) an issue can be reported at the [Fenix GitHub project](https://github.com/mozilla-mobile/fenix/). If you want to discuss your report please use [Mozilla's chat](https://wiki.mozilla.org/Matrix#Connect_to_Matrix) server https://chat.mozilla.org and join the [#fenix](https://chat.mozilla.org/#/room/#fenix:mozilla.org) channel.
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INCOMPLETE
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.