I've been using TA in a product of mine for about a year now and for the most part I am a very happy customer.
A user of mine recently complained that my product often takes 15+ seconds to start. This surprised me, as typical program start time is 2-3 seconds for my users.
To troubleshoot, I inserted a performance timer in the startup process to log how long each step takes. To my surprise, for this user the IsGenuine check was taking about 12-13 seconds after a fresh boot. After they close and restart my program, the IsGenuine check only takes about 1.25 seconds (still on the slow side).
For comparison, on my development machine after a fresh boot, IsGenuine only takes about 0.34 seconds. After many tests on my machine, I have a range of IsGenuine times of 0.25 to 0.45 seconds - all perfectly acceptable.
I don't understand why this user is experiencing significantly slower times. I also don't know how many other users are experiencing the same and just never reported it - I'm concerned that prospective users may think my software is no good due to taking so long to start, and just delete it and not ask for help.
I am developing in Delphi, and the user that is experiencing the problem is on a real machine, not virtual.
Here is my code in case I am doing something wrong:
DaysBetweenChecks := 90; GracePeriodLength := 14; try TA := TurboActivate.Create('guid'); GR := TA.IsGenuine(DaysBetweenChecks, GracePeriodLength, True); IsGenuine := (GR = Genuine) or (GR = GenuineFeaturesChanged) or (GR = InternetError); if (not isGenuine) and (TA.IsActivated) then begin try case TA.IsGenuine() of Genuine, GenuineFeaturesChanged : isGenuine := True; NotGenuine, NotGenuineInVM : isGenuine := False; InternetError : begin ShowMessage('Failed to connect with the activation server.'); end; end; except on E : Exception do begin ShowMessage('Failed to re-verify with the activations servers. Full error: ' + E.Message ); end; end; end; except on Ex: ETurboActivateException do begin ShowMessage('Failed to check if activated: ' + Ex.Message); end; end;
Thanks,Paul