Jump to content

FPiette

Members
  • Content Count

    1200
  • Joined

  • Last visited

  • Days Won

    16

Everything posted by FPiette

  1. Hello! I have the need to profile my application to find a performance bottleneck. This 32 bit application written in Delphi 11 is using IXmlDoc to read a GPX file and build an equivalent Delphi class hierarchy. This process look abnormally long. This could comes from IXmlDoc which is not the fastest XML parser, or from the code I wrote. I hope that using a profiler I will discover where the issue lies. So I searched the web and found several products. Among them I found GpProfile2017 (https://github.com/ase379/gpprofile2017) which is open source and still maintained. Before jumping to this project, I would like to know if someone has some experience to share. Thanks.
  2. FPiette

    Delphi profiler

    To keep you up-to-date, I have modified my code to use OmniXML that is delivered with Delphi 11 (unit Xml.Internal.OmniXML) and to use a record instead of a class for the most used data structure. The net result is a speed increase by a factor of 10 (Ten!) on a large GPX file. If time permit, I will give a try to neslib.xml.
  3. For your information, HTTP is based on TCP as many other high level protocols such as FTP, SMTP, POP3 and more. You are right that the HTTP proxy will only work for HTTP. Maybe you can have a look at it to understand how it works? Or you have to study how TIcsProxy: you have full source code.
  4. Did you read the explanation that is in TIcsProxy source code ?
  5. FPiette

    Delphi profiler

    I did not know! And this looks very promising. Thanks a lot.
  6. I'm pretty sure you are wrong and that it is not specified in languages.
  7. FPiette

    New install

    You are using the wrong sample. If you want encrypted mail, use with OverbyteIcsSslMailSnd.dproj.
  8. FPiette

    Delphi profiler

    When I do that, the debugger always stops at the same place: ntdll.RtlUserThreadStart. And the call stack is empty!
  9. FPiette

    Delphi profiler

    Currently trying omniXML that comes with Delphi 11. If unsuccessful, I will give a try to XMLLite. Thanks.
  10. FPiette

    New install

    We cannot help you is you don't even mention the errors you get. Does it works with the sample applications delivered in ICS distribution? You should really start with those samples to verify your setup is OK.
  11. FPiette

    Profiler for Delphi

    This stops at Delphi 10.3. I'm using Delphi 11.
  12. FPiette

    Profiler for Delphi

    Yes it is. Clearly mentioned by the current maintainer. @Primož Gabrijelčič is a highly skilled Delphi developer, that's why I'm interested in GpProfile2017 and I ask here for feedback from actual user of GpProfile2017.
  13. FPiette

    Profiler for Delphi

    That's where I discovered GpProfiler2017.
  14. FPiette

    Delphi profiler

    GPX file have very simple structure but there are tens of thousands of nodes (Example of GPX file). Before changing my code, I would profile it to know if the slowness comes from the XML parser our from my own code which is fully class oriented with generic TObjectList. I suspect this is much slower in my case compared to records and pre-allocated dynamic arrays.
  15. FPiette

    Delphi profiler

    This link is dead.
  16. FPiette

    calculete time in delphi

    Your code compute the elapsed time for a given calculation, not the time your application is running. Which one do you need? If what you need is the time elapsed since the start of your program, use the main form OnCreate event to record the starting time and a timer to periodically compute the elapsed time (Just the difference between current time and recorded start time) and display it on screen.
  17. FPiette

    Algorythms of hiding the part of image

    Find a face in an image is not a trivial task. Blurring the face once found is easy. There are libraries for both tasks, google is you friend.
  18. FPiette

    calculete time in delphi

    Is it your homework? It would be better that you show the code you already wrote so that we can help you with it. If we give you the solution - which is quite trivial - you won't learn anything.
  19. FPiette

    Encrypting string

    There are a huge number of encryption methods. The best depends on the context you say nothing about. As a start, see this article which is really a very basic encryption method. For a more advanced solution, look for example at this source code on github.
  20. FPiette

    Extract string between two number delphi

    One possible solution: procedure TForm1.Button1Click(Sender: TObject); const SrcString : String = '2090Lj32J5Y6Ni6Q2Rt8c538u1X227L340Q8N1...ce4A3z6l96S5v7LZ3OhSVoB538k7wPTn13E2w2D0h104fJ7HP09xo7W71J1o02c088922A3t420697F5431XP91C6JF9w1Ss0Tuk5S669207816gp57pW193BPWL27AZ052nr2S714...30'; Delim : String = '...'; var S : array [1..3] of String; I, J, K : Integer; begin J := 1; I := Low(S); while I <= High(S) do begin K := Pos(Delim, SrcString, J); if K <= 0 then begin S[I] := Copy(SrcString, J); while I < High(S) do begin Inc(I); S[I] := ''; end; break; end; S[I] := Copy(SrcString, J, K - J); J := K + Length(Delim); Inc(I); end; for I := Low(S) to High(S) do Memo1.Lines.Add(S[I]); end;
  21. You can do that by using FFMPEG. Your delphi program run FFMPEG executable, passing the argument for output file format and input file format. Select input thru a pipe that your Delphi program will create a stuff with the images. Before you ask : No I have no code to share.
  22. FPiette

    Strange stack overflow message

    I would suggest this: 1) Close the IDE. 2) Make sure you have the source code and DCU files in only one place on all your hard drives. (I you need to keep previous version as backup, move it to a zip file). Later, when the issue is sorted out, of course you may have several copies in different directories not accessible by the IDE. 3) Start the IDE and load the project having the issue, only that project, not a group of projects. 4) From project manager, right click on the project node and click "clean". 5) From project manager, make sure "debug" build is active and right click on the project node and click "Build". 6) In the source code, put a break point on the "begin" of the buttonclick procedure for the button. 7) In the source code, put a break point on the "begin" of the procedure/function where the stack overflow occurs. 8 ) Run the debugger (F9). Enter data in the user interface and click that famous button. 9) Your first break point should be hit 10) Run step by step using F7 (F8 to not enter RTL function/procedure). 11) See if all lines execute as you expect. Take special attention to recursive call to one of your function/procedure (That is call one before it has exited). Recursive call without having a mean to break the recursion is what you are looking for.
  23. FPiette

    Algorythms of hiding the part of image

    I guess you mean recognizable as a person but not as an individual. Is your problem find the face automatically or is you problem blurring that face or both?
  24. FPiette

    Algorythms of hiding the part of image

    Could give an example?
  25. FPiette

    Overbyte.eu down - can't download ICS

    That is on another system located in UK. overbyte.eu is located in Belgium. SVN system is online as far as I see from here right now.
×