Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 08/04/19 in all areas

  1. Arnaud Bouchez

    Delphi Memory Managers?

    Delphi default MM is a cut-down version of FastMM4 on Windows. You may achieve slightly better performance on multi-threading by using FastMM4 with some custom conditionals. IIRC on Apple, Linux or mobile platforms, it uses the clib heap manager. Which is not bad in practice. ScaleMM2 or others - like BrainMM - may be better for multi-threaded apps, but tend to consume much more memory. Under Linux, switching to Intel TBB or JMalloc may give a performance boost, but will also consume much more memory - see my tests with FPC https://github.com/synopse/mORMot/blob/8a55fb3bf2d4cffeb779dd19a8be18e227188f2f/SynFPCCMemAligned.pas#L68 But the main performance enhancement would probably be by changing your algorithms... Mainly avoiding heap allocations... See http://blog.synopse.info/post/2018/11/12/EKON-22-Slides-and-Code
  2. David Schwartz

    Playing multiple wave files simultaneously

    WARNING: Mitov's library installs both debug and release libs for every possible platform on your version of Delphi. It does take up quite a bit of disk space! But you can safely go through and delete the platform libs you won't need.
  3. Did you just open the old D7 project in Rio to start the migration? That is not a good idea for such a massive version jump. After you have extracted the complete old project from version control, close all files and the RIO IDE and go to the project folder on disk and move all files not having one of the following extensions to a zip folder: dpr, pas, res, rc, ico If the project contains other resources you may keep them as well. The important part is to delete the old project file (do not remember what extension it used in D7, perhaps bdsproj, and the old cfg file as well. Then open the IDE and open the project's dpr file. This will create a new project file. The project will show up in the project manager view and should have the Win32 target assigned automatically. It will also have a default build configuration assigned, but the settings used for that will not all be suitable for your project. So the next step is to open the project options dialog (from the Project menu or the project manager view's context menu) and adjust the settings, especially the search and output pathes. Beware! The settings dialog is completely different from the one you may know from D7! Since you can have multiple build configurations for multiple target platforms the settings are organized as a kind of hierarchy, and you have to first select the correct hierarchy level for the settings you want to modify. You do this using the combo box at the top of the right-side pane, pick "32 bit windows platform" under "all configurations". In the left-hand treeview you should have the top node (Delphi compiler) selected, that shows the page with the project-specific path settings on the right. The most important things here to get your project to compile are the unit scope names and the search path. Delphi uses namespace-like scope names on the run-time and framework units and has done so since many versions. But D7 did not use unit scope names. To make migration easier the IDE and the compiler will automatically search for units named in Uses clauses within the scopes listed in the unit scope names field if the unit is not found by the given name (the System scope is always searched, though). The default list contains the most frequently used scopes, but you have to make sure that VCL and VCL.Win are in the list as well. The search path becomes important if your project uses custom units not located in the project folder (where the dpr file and the generated dproj file reside). You have to add all pathes for units there that are not found on the IDE library path (as dcu or pas). I don't know how you organize your project files on disk. I usually use something like projectname (dpr, dproj, cfg) source (pas, inc) bin (dcus) exe (exe) doc (documentation) resources (rc and res files, files embedded in them) test (unit tests and other test programs) So the output folder path set in the dialog would be (without the quotes, of course) ".\exe". The unit output path would be ".\bin\$(platform)\$(config)" The search path would be ".\bin\$(platform)\$(config);.\source;$(common);$(include)" "common" and "include" are environment variables defined in the IDE Options dialog that contain the pathes to my code library (not project specific units). The resource compiler node on the left also has a search path setting, these are for rc and res files, but in my experience this has been a bit unreliable in recent versions; i often have to add rc files explicitely to a project to get them compiled and linked in.
  4. PeterPanettone

    The Embarcadero GetIt server could not be reached...

    What is the cause of the server malfunction? High temperatures? Why not building data centers in the Arctic? At least we could get funny error messages like: "A polar bear caused a malfunction in our datacenter".
×