Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 11/07/24 in all areas

  1. Brian Evans

    Putting Delphi Application inside web page

    That has always annoyed me - step one of looking for products/solutions is to survey what is out there and compile a list with basic information. I usually just ignore/skip anything where the information is hard to come by as I have been burned too many times. Far too many companies' think their product is good for X when feature wise that would be true, but price or licensing terms make it not. I want to know that from the start not after wasting hours evaluating a product and dealing with sales calls. Most of the time 'contact sales' means the product has runtime fees, weird tiered pricing or terms making it unsuitable for a lot of scenarios.
  2. DelphiUdIT

    Continuity solution of the Default font Sydnye vs. Athens

    Of ourse the font should exists ... This is the default font setting. This is the modified setting from DPR, without changing nothing in the source or design.
  3. pyscripter

    ssh tunnel with ssh-pascal

    @dummzeuch I have pushed a couple of fixes to SshTunnel.pas (issues found by Copilot!). Could you please check whether they make a difference? One of them might: SocketOption := 1; // Initialize SocketOption
  4. Kas Ob.

    ssh tunnel with ssh-pascal

    @dummzeuch Can't test it right now, as it need more code to make it work, but Don't ever use select in that way, in general all looks fine and correct, but without socket errors not the ones with API calls return, but the ones from "exceptfds", without checking for socket level errors you are driving in the dark, if error was signaled on the socket then read will hang for ever ! Add exceptfds, and then check for errors before read or write, as in many cases both error and read/write might be triggered and reported at the same time, in your case most likely this what did happen, an acknowledgment received to close and both readfds and exceptfds had been signaled.
  5. Greetings to All!. I've built (TSignInWithGoogle) a basic component to integrate Google Sign-in into your Android app using Credential Manager, adhering to Google's most recent guidelines. I'll leave it here for anyone who might find it useful!. Here the link: https://github.com/MEStackCodes/SignInWithGoogleDelphi
  6. ToddFrankson

    What new features would you like to see in Delphi 13?

    Dave, it would be best to have a private conversation regarding why. I actually have been thinking of reaching out to you.... I'll PM you.
  7. Stefan Glienke

    win11 24h2 msheap fastest

    That benchmark proves almost (*) nothing, the only point where it allocates is during the form creation where it builds the card deck and later when it prints the output into the TListBox. (*) the only thing affected here is the possible layout of the card objects in the heap as they are all read during the hand-processing code. The difference that you can observe here between Delphi buids using different memory managers is most likely caused by the amount of overhead the respective memory manager is using thus fitting more card objects within the same memory pages, thus more of them (most likely all on modern processors) fitting into L1 cache. As for this particular code - removing the name of the Cards from the object and only building it when it is needed for some UI would probably speed up code more than anything else because you get rid of 20 Byte for every object (Name is a string[19]) - on my CPU this makes the code go down from ~900ms to ~680ms - simply because it does not need to copy the strings in CopyCardFromDeck. Circumventing the getter and setter of TList (which contribute around 25% of the remaining time) brings it down to 460ms. And after that we are not done with string stuff - in every loop iteration, it calls Hand.SetHighValues which produces a name for the cards on the hand - removing that gets me down to ~400. Now because I have a run and SamplingProfiler open already I see that now one of the scorers is TcaaPokerHand.CopyCardFromDeck - the Items getter is not inlined which causes it to be called 10 times for the same 2 card objects. Changing that gets me down to 270ms. But how about avoiding repeated access to the same object in the 2 lists altogether? 230ms I could go on because I see a lot more room to optimize - but I think I made my point. Instead of fiddling with the memory manager one should first look if heap allocations are even the issue. And then identify unnecessary work and eliminate that. ... change TcaaEvaluationCard to be 8 Byte size - (that avoids that the compiler creates a movsd/movsb instruction but simply does an 8 byte mov) -> 160ms
  8. Christophe E.

    ANN : TECNativeMap 5.5

    TECNativeMap is a 100% Delphi mapping component that uses neither browser nor javascript, and is available on all Delphi-supported platforms. Compatible since Delphi 7 for VCL and XE3 for Firemonkey. The main new features of this version MBTiles support with FireDAC (SQLite database for storing map tiles in a single file) 3 new Components ( SwitchTileServer, OpenWeather , Mapillary ) Beginning of support for MapLibre ( MapBox ) vector tiles ( it's still in the prototype stage, and is slow and incomplete ) You can download a trial version for Delphi 12
×