I downloaded VLC Portable today and got immediately annoyed by it's splash screen (as usually). This time I decided not to make a mess in the main directory by adding a config file and recompile it instead. As I did it already, I decided to remove the rest of stuff that's useless for me, like MUI and CRC check.
Then I decided to make a performance test.
Result?
Original launcher: 2.28s (VLC showed up a bit before, but a splash screen covered it anyway).
My launcher: 0.15s. I redid the tests 3 times each, all were within 0.02s.
I guess that something is very wrong with one of the components and suggest inspecting the thing.
You are here
VLC: My simple experiment
July 27, 2008 - 6:13pm
#1
VLC: My simple experiment
The MUI was accidentally included in several of the launchers and is being removed on each new release (missed it on the last VLC). It results in a mild slowdown.
The CRC is staying as it's what lets you know when the EXE has been modified (usually by a virus) on launch. Launcher fails, you have an issue. The CRC check does take a small amount of time... never timed it, though. Distributing it without the CRC would be a bit irresponsible of us.
If there is additional slowdown, it could possibly be your system verifying the digital signature (if your system is slow or overloaded at the time). But that's not all that unusual (your firefox.exe is signed, for instance).
Rerun the original launcher after the initial launch and you'll find it run much quicker. I removed the splash screen, for instance, and didn't see a noticeable difference in startup speed.
Sometimes, the impossible can become possible, if you're awesome!
As I wrote, I tried 3 times and the result was always the same, so initial run doesn't change anything. Also, my system was not doing anything special at the time.
You can rule out AV too, cause I don't use runtime protection.
I don't know what do you mean by "verifying the digital signature", are NSIS installers signed?
ADDED: I measured script execution time, not time before VLC starts, so the splash screen is partially responsible for such bad result (as I wrote, it was on for a short while after VLC started).
"Those people who think they know everything are a great annoyance to those of us who do." Asimov
Ah ok, I thought you only tried yours three times.
Yes, the launchers are digitally signed (right-click and select properties and you'll see it). The installers are signed as well so users can be sure they're getting a real PortableApps.com release and not something from someone else (and it makes the initial run dialog come up with an exclamation mark symbol and "Rare Ideas, LLC" as publisher rather than a red X warning symbol and "Unknown Publisher" on Windows XP and Vista).
It would be nice to nail it down. I think it may be the digital signature. I've been debating removing them from the launchers as they don't add too much right now that's not already handled by the CRC (which is faster) in terms of the way Windows views the files.
Would you retest the original vs the original recompiled by you (so no digital signature) vs CRC removed or anything else you think may be it? That would be a big help.![Smile](https://portableapps.com/sites/all/modules/smiley/packs/kolobok/smile.gif)
BTW - What are you using to measure script execution time? I've been looking for a solid one.
Sometimes, the impossible can become possible, if you're awesome!
I'll do the tests later today.
I use Igor Pavlov's timer.
"Those people who think they know everything are a great annoyance to those of us who do." Asimov
Done, each tested 8-15 times, no average, only min-max. I list the first run independently, there's not only signature check, but also disk cache making it slower.
Original:
1 : 2.406
2+: 2.281-2.297
Recompiled:
1 : 2.341
2+: 2.266-2.313
Splash screen for 0.001s:
1: 0.266
2+:0.250-0.312
No CRC:
1 :0.297
2+:0.234-0.297
No splash screen:
1: 0.203
2+:0.032-0.203
No MUI
1: 0.516
2+:0.032-0.203
So it's basically almost entirely a matter of splash screen.
Waiting for it 2 seconds practically increases execution time for 2 seconds (so time of executing code after newadvsplash::show is within error range).
These 2 seconds surely don't affect time after VLC starts, but when run from a HDD (possibly fast USB drives too), they affect time after you can start to use it.
Also, totally removing splash screen reduces time further by ~0.1s.
MUI has no impact.
"Those people who think they know everything are a great annoyance to those of us who do." Asimov
I think I misread what you were measuring earlier. You're only measuring the speed of the script running... not of the time between launch and when VLC starts up, which is of much greater interest. Of course the splash causes the script to run for 2 seconds as it set to stay visible for a period of exactly 2000ms.
I'd be willing to bet you're running off a hard drive, right? In that case, the splash screen would slow your access to VLC by up to a second. But a hard drive isn't what most people run portable apps on. VLC Portable takes 5 seconds or more to start up from an average speed flash drive. Longer on a slower one. Much longer on an older one or over USB 1.1. The splash screen comes up nearly instantly to make the app feel like it launches faster in those instances. It's not needed as much as it would be with apps like OpenOffice.org or Firefox which take much longer to start, but it does still serve a purpose (in addition to making clear that this is a non-standard package of VLC and that users should visit us for support first, of course).
If you're among the few users that uses a hard drive for portable apps and the splash screen bothers you, you can always easily disable it with the INI.
Sometimes, the impossible can become possible, if you're awesome!
But a hard drive isn't what most people run portable apps on
Do you have any solid data on it?
"Those people who think they know everything are a great annoyance to those of us who do." Asimov
when they signed up. It's in the profile, like for you, it says your ipod or mp3 player as your normal portableapps locale.
Don't be an uberPr∅. They are stinky.
I get it differently, I use portable apps mostly on a HDD, but it's not a "portable device". As I run them from a mp3 player too, it's a "portable device" for me.
"Those people who think they know everything are a great annoyance to those of us who do." Asimov
A little under 8% of users use a portable hard drive (and we don't specify whether it's one of the faster ones or the tiny slow ones) and a little under 8% use them on their own PC while a little under 80% use them on a flash-based device. I didn't include iPod/MP3 players in the numbers since they could be hard drive or flash-based.
Sometimes, the impossible can become possible, if you're awesome!
Thank you. I'm curious how did you collect this data? From user profiles, as consul suggested?
"Those people who think they know everything are a great annoyance to those of us who do." Asimov
It's from the user profile selection. The numbers are based on the selections of our 63,000+ membership base.
Sometimes, the impossible can become possible, if you're awesome!
Ah, a 63,000 user base.
See, I think I also added Flash drive while now I also use it locally.![Smile](https://portableapps.com/sites/all/modules/smiley/packs/kolobok/smile.gif)
Made me think, wasn't there a way to differentiate between removable disc and HDD and base the showing of the app splash based on that? Please note my USB HDD's I use show also up as local disks. (You probably will say no
But I plan switching local apps to portable ones because of several reasons:
Easy to make a working backup, easy 'reinstall' after computer or OS upgrade, keeping registry clean and it has probably some more advantages not directly related to carrying the apps around on an USB stick from PC to PC.
So while Portable usage is the biggest usage base PortableApps also also recommended by me for general use. (well, without having file associations then![Smile](https://portableapps.com/sites/all/modules/smiley/packs/kolobok/smile.gif)
I've got my 8gb sandisk cruzer titanium which I use primarily and I take it every where, but I also have an 4gb one that has been plugged in my usb hub for my laptop since forever, which I will be swapping out to put a new usb external harddrive 250gb or more (for my music and pics).
The usb external will also be the cruzer backup location.
It'll be installed there because it'll keep my laptop as close to the clean install as possible.
Don't be an uberPr∅. They are stinky.
I build a tool that lets me measure real application startup time by waiting until a specified window is visible.
I did measurements with my HDD (not very fast, 3 generations behind) and pendrive (rather slow one, but I don't have any numbers).
HDD: ~0.8-0.85s. So splash screen that's being hidden after ~2.4s basically triples this.
Pendrive:~2.6-2.9s. The splash screen always hides quick enough.
However, your estimations (no more than 1s, startup is longer by 5s) are significantly off.
"Those people who think they know everything are a great annoyance to those of us who do." Asimov
Could you please explain what step did you take to reach that 0.15s ? Mine is 2s with DisableSplash set to be true : |