

DelphiUdIT
Members-
Content Count
734 -
Joined
-
Last visited
-
Days Won
17
Everything posted by DelphiUdIT
-
Delphi 11.3 vs. Delphi 12.1 : 'View/Tool Windows/Palette' and 'View/Toolbars/Component'
DelphiUdIT replied to Ruud's topic in Delphi IDE and APIs
I can confirm that those duplications occur to me from very long time. But since they occurs only in the standard tab and they don't have any impacts for me ... I've gotten used to it now and I don't pay attention to it anymore. -
OT All the files downloaded from iInternet are "blocked", this means that some features of the file cannot works. To unblock them use what @dummzeuch said. Other method is run a powershell script: UnBlock-File Ref.: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/unblock-file?view=powershell-7.4 I use this to remove all block signs in every file of the present directory and sub folders (form PowerShell command): dir .\ -Recurse -Force | Unblock-File
-
I don't know about AMD CPU (they may use other tech. to assume protection and / or high performance), but with INTEL (new versions, I think from 11 Gen) there is a ITD (Intel Threads DIrector) that organize the load of the full CPU: he distribute dynamically all the threads around all CPU, and he can use E-Core or not depends from the "performance level", state of the single core (frequency, load) and other factors. Is not true that all cores works at the same speed (with Intel). And this is the first things about the fact the is not necessary (and repeat is a not sense) to put one of them in one of their sleep state. The cores can go down to 700 MHz (may be, I'm not sure about this frequency) and less the 1 Watts power use (all cores). It's not necessary move all works in less COREs to maintain performance and protection. The force of the slepp state of the cores that is working is not "writing" in none of the technical ooks of Intel. Of course, like I said before, load balancing is done by ITD, and is possible that, if one part of you application go in a WAITFORxxx, a Sleep(yyy) or other situations, the IDT move this code in other CORE and sò free one or more cores. But this is a dynamic about load balancing, not about protection. Refer to much toushand pages of Intel: "743844_011-13th, 14th Generation Intel Core Processor Family - Vol 1", "248966-Optimization-Reference-Manual-V1-050", "Game Dev Guide for 12th Gen Intel Core Processor Hybrid Architecture", "325462-sdm-vol-1-2abcd-3abcd-4". There is not issues about use of E cores, P cores or mixed: an application can set by self the setting about core use true affinity mask. I use that to assure that all power go to my "piece" of application that need that and that some other parts use the e-cores. EDIT: P.S.: I tried in the last month to use only ITD (so without use of affinity mask), and the analisys seems tha ITD works better. The same test, that I did some years ago, was not so positive.
-
Lol, without any warning this patch suddenly appeared...
-
I forgot about this: in my personal experience, the best settings for applications (not games) is "balanced". This is based on experience in industrial systems (and in my daily work) where temperature, woking load and peformance should be mixed and should provide consistent performance. With "high performance settings", in the past and I never tried again, I had many issues with variable performance (most of them due to Throttle and temperature). If you force "high performance", the system cannot modulate the use of the resources. Most of the time I had "peaks of lock with downgrade timing" or high temperature recording, with my daily working PC too. Of course, this is my experience, and I'm sure that someone's experience is different.
-
You are right, and more others like not optimize code ..... But I think he's just looking at appearances. If before he used old generation CPUs, now the new ones (hybrid) are abyss away in terms of real processing power. One of my applications on an "I7 9700 DDR4" used 75% of CPU and the times "measured" were near 190 ms (no Throttle). The exact same one on an "I7 12700 DDR4" system uses 45% of CPU and the times are near 110 ms. So there is a performance drop ... well I would say no.
-
You are really confident about CoPilot or others AI ? Try to reflect about the situation: 1) I use 10 COREs at 50%, and the CPU go to 95 degrees: the system power down one (or more) core ???? WHYYYYY ???? The logics about the "deep sleep" of the core is about energy saving, not protections, so if the cores are not used they are "sleeped". For the protections the Throttle and other factors (like cores voltage and others) are in "game". That is what I know, and I'm ready to change my mind if an HUMAN give me usefull informations, not an AI. Really, don't take the AI like a GOD. Look here (I try by myself an example from this forum):
-
Like @Anders Melander said, the Task Manager is not the right instrument to measure the performance of your application. One of the simple way is to measure the time the your software needs to do some tasks. Compare with old systems (if you can) or analyze with the datas that you histrical have. If you really use a bunch of threads you are not able to "consume" all processor power. You can measure performance datas with "profilers" or simply usingn "time base view" with TStopWatch (from System.Diagnostics) for primitive analyses.
-
First of all, the CPU % in task manager is about all threads (I mean cores with hypert. and not). If you use only some cores (and the decision is made by the ITD) the CPU usage never go to 100%. I can assure you that you can reach the full power of you processor. In my applications I stay form 50% to 90% of CPU usage using all possible Corse, but I use in my apps more then 30 TThreads.
-
In the past I used to compile app with ARM (I think V7 32 bit, but not sure) with Delphi and run in a Tablet with Intel processor ATOM 64 bit (like Asus ZENPAD 8"). I really don't know the procedure. I remember that I have to delete some so files ... Sure he can help: @Dave Nottage
-
Simole threads providing progress info
DelphiUdIT replied to uligerhardt's topic in RTL and Delphi Object Pascal
OOps ... sorry I didn't note that ... except "Queue" than he can use "Synchronize" (is not async), the others things should working. -
"duplicates not allowed" error when opening a project
DelphiUdIT replied to Edwin Yip's topic in Delphi IDE and APIs
May be you can have found the right way ... (BDSINCLUDE)\windows\vcl is already included in the standard global path of C++. But I have to modified the "All Configuration" settings in the options .... THAT WORKS ... GREAT. EDIT: If you cannot enter in the QC portal I will report that with your refer (this topic) .... -
Simole threads providing progress info
DelphiUdIT replied to uligerhardt's topic in RTL and Delphi Object Pascal
I always used TThread, the object include in the standard lib with Delphi. With that you can do everything. Use "Queue" method to interact with VCL components. Ref: https://docwiki.embarcadero.com/Libraries/Sydney/en/System.Classes.TThread If you have time, explore the use of WaitForxxx with events in Threads ... they can help a lot your works. Of course the other libraries can help to do specific works and can extend the functionality of the Thread. -
You can fork the project and mantain your version, after that you may propose a merge. When they have time surely they will do that. I maintain my version of Indy for example, 'cause their (... his ...) time and priority are not the same as mines.
-
They are signed that like FIXED in Rad Studio 12.2 PATCH 1.
-
"duplicates not allowed" error when opening a project
DelphiUdIT replied to Edwin Yip's topic in Delphi IDE and APIs
There are an open issue (an not only one) about that: https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-2144 Seems that the error is about the Visual Assist ... wait for a patch ... (hope for a real patch).... -
You can read the sources of Indy to look how it works (with the OpenSSL 1.0.2u, the Indy develop with RAD Studio use this version). Look at guthub repo for more upgrades (https://github.com/IndySockets). Another way is to look how ICS works (https://wiki.overbyte.eu/wiki/index.php/ICS_Download or via GetIt).
-
This is a example of Manifest of one my Android project, you can edit and adding it (it's indicating with <----- HERE') to your AndroidManifest.XML under Android64 of your project folder: <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="xxxxxxxxxxxxxxxxxxx" android:versionCode="1" android:versionName="1.0.0" android:installLocation="auto"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="34" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_CALL_LOG" /> <uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="False" android:restoreAnyVersion="False" android:label="xxxxxxxxxxxxxxx" android:debuggable="true" android:largeHeap="false" android:icon="@drawable/ic_launcher" android:theme="@style/AppTheme" android:hardwareAccelerated="true"> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="xxxxxxxxxxxl" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask" android:exported="true"> <-----------------------------------------------------HERE <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="xxxxxxxxxxxxxx" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.embarcadero.rtl.notifications.NotificationAlarm" /> </application> </manifest> <!-- END_INCLUDE(manifest) -->
-
This is the direct link: https://ats.rippling.com/partnerco/jobs/79f36155-18a0-465f-a787-8f2448a55e09 EDIT
-
I don't have any IDE experts installed (except BCompare), no Parnassus, no getit package except D4P, JCL, JVCL and Indy compiled from github. I removed FIREUILivePreview and EMS components (not compatibles with Indy from github). Except for what I have signaled on QP (AV when switch from Delphi to Mixed Delphi / C++ prj and a Issue with project panel view). I don't have other problems. I used Rad Studio, and switch without close it from Win64 Delphi project and Android Delphi project with debugging either. Changed also the SDK settings (for various release of Android). Always without close the IDE. No issue at all. Like others I'm lucky.
-
Copy file to temp folder fails
DelphiUdIT replied to emileverh's topic in RTL and Delphi Object Pascal
First of all you should know why the file is not deleted. AFter that there are other ways to delete a file, for example when is locked. BUt this go over my competence. -
Using Python4Delphi library in a Windows service
DelphiUdIT replied to Luca Pretti's topic in Python4Delphi
If there are DLL required for python here is the logic, from: https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order LOL: I really didn't know about that "The 16-bit system folder. There's no function that obtains the path of this folder, but it is searched." -
The midas.a that you have create is a symbolic link (or better a container of symbolik links...) for a MIDAS.DLL and you must deploy MIDAS.DLL with your application. You cannot create a midas.o (or static library) without the source. No chance.
-
Using Python4Delphi library in a Windows service
DelphiUdIT replied to Luca Pretti's topic in Python4Delphi
I think should be better that you create the Python engine in a START event of controller, and Free it on Destroy event. Execute method is call more times during the "live" state of Service. Bye -
"TokenUser" is a an enum member of TTokenInformationClass defined in WinApi.Windows. You have redefined it in you local variables. EDIT: of course you can use TTokenInformationClass.TokenUser instaed ...