Jump to content

Anders Melander

Members
  • Content Count

    2312
  • Joined

  • Last visited

  • Days Won

    119

Posts posted by Anders Melander


  1. 1 hour ago, Renate Schaaf said:

    I have no idea how parallelizable jpeg-decoding is

    Most modern jpegs require sequential decompression due to the compression algorithms used (decompression of a block is based on the result of the previous block); There's nothing much to parallelize.

     

    Jpegs with lots of restart markers (a restart marker means that the result of the previous blocks isn't needed) in the compression stream would benefit from parallelization but it is my understanding that those have become very rare as the problem they were meant to solve (data corruption during download via modem) no longer exist.


  2. 1 hour ago, FabDev said:

    My computer has 32 GB of memory, but the Delphi IDE crash after 2.5 GB... :classic_angry:

    The address space of a 32-bit application is 4GB. Some of that is reserved by Windows. By default 2GB but for Large Address Aware applications (such as the Delphi IDE) it's 1 GB. These values can be customized globally. Your hardware configuration (motherboard, etc..) can have an effect on the reserved size, btw.

    https://learn.microsoft.com/en-us/windows/win32/memory/virtual-address-space

     

    If you are running out of memory at 2.5GB then the IDE is trying to make an allocation of 0.5 GB or more. This seems unlikely so there could be something else going on. You might wait to check the size of "hardware reserved memory" on your system.

     

    1 hour ago, FabDev said:

    And what happens when more than 100 forms are opened at the same time or after intensive code completion using or pressing F1 (for help) > out of memory.

    100 forms open at the same time is hardly a typical use case. Why would you ever want that?

     

    FWIW, I just tried opening all the over 600 forms, frames and datamodules of a project with around 3 million lines of code. It uses DevExpress ribbon, docking, skins, grids, and controls, FireDAC, etc. That consumed 3.4 GB but happily compiled and linked. It's a 64-bit project.

     

    I'm not saying that your problem isn't real but I don't think this problem is common enough that it alone justifies migrating the IDE to 64-bit. And I certainly don't think your rhetoric will help your case.

    • Like 2

  3. 5 hours ago, Heremik said:

    TBitBtn = 0 GDI

    Looking at the source of TBitBtn, it can either use an internal TBitmap (which will consume at least 1 handle per button) or it can use an external imagelist (which will consume at least 1 handle globally [*]).

    [*] Drawing an imagelist in the disabled state consumes another handle, drawing it monochrome another.

     

    I would stay away from TBitBtn. It was cute in the nineties but today few people want their application to look like it was made in the nineties...


  4. 2 hours ago, Heremik said:

    I have made a ticket for TMS support, because even their sample use 500 GDI for a minimal Ribbon.

    For comparison, I have a simple application that's using DevExpress ribbon, DevExpress grids and a virtual treeview and it uses 400-450 GDI handles.

     

    2 hours ago, Heremik said:

    But I have begun to reduce GDI usage in the remaining of the software by moving imagelist present in frames instancied several times, to a datamodule.

    An imagelist itself uses at most one GDI handle - if any. It's the individual bitmaps that copy data from the image list that uses the handles.


  5. 16 hours ago, luciano_f said:

    I have a version 10.2 license and I have problems with low memory when compiling a large application. I tested version 11.3 and the problem is the same.

    When will Embarcadero be ashamed and make a robust 64-Bit IDE? I'm already thinking seriously about Lazarus

    I already made this post

    Friends could also do the same thing, who knows, everyone asking for the same thing and giving could speed this up.

     

    https://quality.embarcadero.com/browse/RSP-42372

    That issue basically just says "Give me a 64-bit version because I say so - or else". I would just close it if I were Embarcadero.

     

    But I'm sure that migrating to Lazarus will ensure that you don't have to worry about memory limitations anymore. You will have a whole slew of other problems to keep you busy instead. Good luck with that.

    • Like 2
    • Haha 2

  6. 3 hours ago, Alexander Halser said:

    The rationale behind this consideration is that a mobile app goes to one of the stores and automated updates are very likely, minimizing the risk of a version mismatch between app and help. Furthermore I expect a mobile device to be online anyway. Both points may not apply to a desktop app. But it's really a personal preference.

    It makes perfect sense to me.

    • Like 1

  7. 33 minutes ago, Uwe Raabe said:

    There is no need to have line breaks when they are later ignored anyway.

    So you don't format your source code with line breaks? - Because the Delphi compiler will ignore them anyway.

     

    It's not something I often do, but once in a blue moon I need to have a largish block of text in the source and that's just the way it is. Let's assume that there are reasons for this and that I know what I'm doing.

    • Like 2

  8. 1 hour ago, Heremik said:

    TMS Ribbon use more than 5000 GDI objects for an interface of only a dozen of tabs (and related ribons) !!!!!!

    Sounds like a bug to me.

    Have you checked the application for resource leaks?

    • Like 1

  9. 33 minutes ago, Stefan Glienke said:

    The closing quotes dictate the alignment, lines inside the string thus cannot be more left than the closing quotes, the last line does not have a trailing line break, if you want a trailing line break, add an empty line

    By Ignore newline I meant from this:

      Lorem

      ipsum

      dolor

    produce this:

      lorem ipsum dolor


  10. 5 hours ago, emileverh said:

    Nice! And about bloody time too!

     

    But surely there's more to the CoffeeScript-like syntax than this:

    Quote

    There are a few more syntax rules for a multiline string :

    • It is introduced by a triple quote (’’’) and a new line (so no text following the triple quotes on the same line)
    • It can encompass multiple lines of the source code file (with no limitation)
    • It ends with a closing triple quote (’’’) in a line without any text preceding it

    Like, how does one differentiate between preserve or trim leading white space and preserve or ignore newline?


  11. 2 hours ago, Fr0sT.Brutal said:

    Hunspell is the spell checker of LibreOffice, OpenOffice.org, Mozilla Firefox & Thunderbird, Google Chrome, and it is also used by proprietary software packages, like macOS, InDesign, memoQ, Opera and SDL Trados

    You might want to link to the source when you copy/paste some text verbatim: http://hunspell.github.io/

     

    In addition to the Hunspell library itself, the Hunspell dictionary format is also supported by many proprietary 3rd party spell check libraries such as the DevExpress spell checker.

     

    See also:

     


  12. As far as I remember it had something to do with some pre-Delphi 6 version attempting to parse the {$if ...} even though it was protected by a {$ifdef CONDITIONALEXPRESSIONS}.

    It could also just have been the fact that {$if CompilerVersion...} doesn't work above the first uses clause...

     

    Anyway, it doesn't really matter anymore. It just struck me that there was a reason why the feature didn't gain more use - from me at least.


  13. 9 minutes ago, Uwe Raabe said:

    You can even check for it:

    
    {$IFDEF CONDITIONALEXPRESSIONS}
    {$IF CompilerVersion < 23.0}
      ...
    {$IFEND}
    {$ENDIF}

     

    So, can anyone remember which version of Delphi broke that scheme?

     

    It's not broken now, but I'm certain that there was a version after Delphi 6 that somehow broke {$IF} so it couldn't be used if backward and forward compatibility was needed.


  14. 4 hours ago, Tommi Prami said:

    Can anyone figure out why Embarcadero could/would/should not publish rtl, compiler etc versions and codename for the beta, just as they include first outsider to the beta test?

    For the same reason they have ridiculous NDAs and don't have public betas; They are so stuck in the 90s that they think anyone still gives a damn.n They never understood how to build a community.

    • Like 5
×