Jump to content

Anders Melander

Members
  • Content Count

    2826
  • Joined

  • Last visited

  • Days Won

    152

Everything posted by Anders Melander

  1. Anders Melander

    MAP2PDB - Profiling with VTune

    VTune only supports Intel hardware as it relies on certain CPU features that are only available on Intel CPUs. At least that what they claim: https://www.intel.com/content/www/us/en/developer/articles/system-requirements/vtune-profiler-system-requirements.html Maybe you can get an older version of VTune to work. For example the current version of VTune doesn't support hardware assisted profiling on my (admittedly pretty old) processor.
  2. Anders Melander

    company search tools question

    https://stackexchange.com/sites
  3. Anders Melander

    company search tools question

    Why are you asking this question in a Delphi programming forum?
  4. Anders Melander

    Better Translation Manager(BTM) and hint texts

    Yes, I guess that could be done; Hook into the application OnShowHint handler and suppress empty hints.
  5. Anders Melander

    Delphi 12.0 TParallel.For performance. Threading.pas issues

    Whoops. I just remembered who wrote that code 🙂
  6. Anders Melander

    Delphi 12.0 TParallel.For performance. Threading.pas issues

    I've heard this too, but it was many, many years ago. Well that explains the complete lack of comments. All their comments are like: // TODO : Document this, FFS! and // TODO : WFT is this shit?
  7. Anders Melander

    Better Translation Manager(BTM) and hint texts

    I'm not sure I understand you. Where would your users specify the hint texts? In BTM? If so you can configure BTM to synthesize properties in case the property "default" mechanism caused them not to be stored. This is already done for the TField.DisplayLabel property which isn't stored in the DFM if its value equals the FieldName property: So you need to specify: The control type as a regular expression. The name of the property to synthesize. Hint in your case. The synthesized value of the property. Probably just an empty string in your case. The problem here is that you probably want this done for lots of different controls so I'm not if this is feasible for you. It would of course best if you could just set the default hint texts in your base language so there's something to translate. Surely, if a control needs a hint text in one language, it needs it in all languages.
  8. Maybe start by revealing who you are, "techdesk"...
  9. Anders Melander

    Determining what driver FireDAC uses for MSSQL connection

    Seems like there's a bug in the documentation. Unfortunate.
  10. Turns out there's good explanation for that 😕 But at least the UI has a "Windows 7" skin.
  11. Hmm. Okay, I'll defer to your expertise then 🙂 - but I can't tell, from looking at the call stack, if the thread was created from Delphi code or from something injected into the process from the outside. I was hoping there was some obvious clue that I had missed. More hmmm. Doesn't really tell me much with regard to the source of the thread.
  12. Nice! I didn't know that one. Too bad about the XP skin though 🙂
  13. There are other ways for a thread to get started, but ignoring that and assuming it was created with CreateThread, one could simply place a breakpoint on the CreateThread import in Winapi.Windows and investigate the call stack as the threads gets crated.
  14. Anders Melander

    Delphi 12.0 TParallel.For performance. Threading.pas issues

    If so then it would probably be better if they implemented a proper rate-limiting mechanism. Looking at the Threading unit, it's rare to see professional code with this few comments. Is there some sort of rule within Embarcadero against commenting the code?
  15. Anders Melander

    Delphi 12.0 TParallel.For performance. Threading.pas issues

    Okay then. I doubt you will have any luck with getting this resolved unless you can provide additional details - which will require an effort on your part. Also, Embarcadero doesn't run this forum and probably doesn't follow what goes on here. If you want them to take notice of the problem you will have to report it to them (which isn't possible at the moment).
  16. Anders Melander

    Delphi 12.0 TParallel.For performance. Threading.pas issues

    I haven't analyzed the problem at all, and I have no solution for you, but a few things struck me when I read the description of your problems. The default property directive only has meaning for published properties and is only used by the VCL streaming mechanism to determine if a property needs to be written to the DFM or not. It has no practical purpose here. I can only think they included it so it's easier to see what the default value is when looking at the source. It doesn't already have a default value. The default value is the one being set in the constructor, hence: True. It isn't set to False. If you are setting to False, then it must be after the constructor has executed. You do you believe that the worker threads being increased is unnecessary? I don't know but I would guess that growing the pool beyond the limit is done to try to avoid the deadlock that could occur in some scenarios if the limit it was a hard limit (e.g. all threads blocked waiting for something that can only be produced by another thread which can't be created because the limit has been reached). Exactly where? If it's an access violation then there must be an invalid pointer. I can see 3 different candidates in that line of code: Self, FThreadPool and FThreadPool.FMonitorThreadWakeEvent. You should be able to determine which one it is with the debugger.
  17. Anders Melander

    debug message

    Okay. Can't help you, sorry.
  18. Anders Melander

    debug message

    Are you asking if any version of Delphi supports Windows 7?
  19. Anders Melander

    Surprising behavior of .ToUpper

    As designed. Look at the source of TStringHelper.ToUpper in SysUtils. Try using ToUpperInvariant instead.
  20. Anders Melander

    Opening form takes 1 minute in debugger, 2.5 s without

    Another thing to try: Use SysInternal's Process Explorer to inspect the call stack the threads in the process while it's running in the debugger. Might give you a clue about what it's doing. Run Delphi in a debugger (you can use another instance of Delphi to do that). Then run your application in the other Delphi and break so you can examine the call stack.
  21. Anders Melander

    Opening form takes 1 minute in debugger, 2.5 s without

    Okay but it's installed in the IDE by default and it affects the design-time performance of forms and datamodules. Give a try; It's one of the first things I do when I install Delphi.
×