Opened 8 years ago

Closed 8 years ago

#8172 closed enhancement (fixed)

[Time] is slow to start

Reported by: diver Owned by: zooey
Priority: normal Milestone: R1
Component: Preferences/Time & Date Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

Looks like Time preflet reads ICU data file on every launch which delays its' start for 3 secons over here. It's just too much for such a tiny preflet. Maybe there is a way to read it only if user opens Time zone tab? Or some additional caching could be implemented somewhere? Maybe some other apps which use ICU data could benefit from it?

Attachments (1)

Time-profile.txt (130.5 KB ) - added by diver 8 years ago.
output of "profile -f -i100 Time"

Download all attachments as: .zip

Change History (6)

comment:1 by axeld, 8 years ago

Are you experiencing this on an emulated Haiku? As it takes about a second to start on my ~4 year old desktop machine which I still find acceptable (sure it would be nicer to have it launch instantly instead, though).

comment:2 by diver, 8 years ago

This is on real hardware. In vbox it's about 5 seconds.

comment:3 by X512, 8 years ago

On my computer Time preflet start after 6 second delay. I use non-english locale.

I don't undestand what for did ICU need. Loading string table and replacing some strings that depends on locale are very simple and fast without any libraries.

by diver, 8 years ago

Attachment: Time-profile.txt added

output of "profile -f -i100 Time"

comment:4 by diver, 8 years ago

Running strace -f Time shows that Time spends 2 out of 3 seconds doing this:

[  3240] _kern_resize_area(0x613c, 0xd0000) = 0x00000000 No error (11 us)
[  3240] _kern_resize_area(0x613c, 0xe0000) = 0x00000000 No error (11 us)
[  3240] _kern_resize_area(0x613c, 0x100000) = 0x00000000 No error (17 us)
[  3240] _kern_resize_area(0x613c, 0x120000) = 0x00000000 No error (15 us)
[  3240] _kern_resize_area(0x613c, 0x130000) = 0x00000000 No error (10 us)
[  3240] _kern_resize_area(0x613c, 0x150000) = 0x00000000 No error (13 us)

Also BeZilla seems to spend a lot of time doing the same on start.

comment:5 by zooey, 8 years ago

Resolution: fixed
Status: newclosed

Startup times of the Time preflet are reduced significantly by hrev43971.

Note: See TracTickets for help on using tickets.