Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: Delphi XE5 - non stop hourglass in IDE


This question is answered.


Permlink Replies: 3 - Last Post: Jul 31, 2015 6:21 AM Last Post By: Peter Below
Nico Callewaert

Posts: 22
Registered: 5/9/02
Delphi XE5 - non stop hourglass in IDE  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 28, 2015 3:13 AM
Hi,

While I'm overly satisfied with Delphi XE5 (beside a few weird things), there is 1 thing that is really annoying: the non stop hourglass in the IDE. When I double click a word to select: hourglass. When I move the cursor 2 spaces: hourglass. Scrolling: hourglass. When typing a few characters: hourglass. And this is really all the time. The IDE freezes and I'm losing a lot of time always waiting to continue. I'm wondering why Embarcadero doesn't fix issues like this. I discovered that turning off "Code parameters", "Tooltip expression evaluation", "Tooltip symbol insight" and "Error insight" under Options->Editor options->Code insights largely fix this issue, but of course it's annoying during debugging. It's a large project (around 300 forms + 200 units). I only keep files open that I'm currently editing.

I'm a long term user of Delphi, I use it since version 1.0, I find it a great tool to develop desktop applications (compared to the WPF / xaml crap from MS), it has excellent third party libraries, but it's just a pitty that every new release is still plagued with the same bugs from previous releases.

Is anybody experiencing the same problem ? How about latest XE8 ?

Many thanks in advance !
Nico Callewaert
Peter Below

Posts: 1,227
Registered: 12/16/99
Re: Delphi XE5 - non stop hourglass in IDE
Correct
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 29, 2015 12:45 AM   in response to: Nico Callewaert in response to: Nico Callewaert
Nico Callewaert wrote:

Hi,

While I'm overly satisfied with Delphi XE5 (beside a few weird
things), there is 1 thing that is really annoying: the non stop
hourglass in the IDE. When I double click a word to select:
hourglass. When I move the cursor 2 spaces: hourglass. Scrolling:
hourglass. When typing a few characters: hourglass. And this is
really all the time. The IDE freezes and I'm losing a lot of time
always waiting to continue. I'm wondering why Embarcadero doesn't fix
issues like this. I discovered that turning off "Code par ameters",
"Tooltip expression evaluation", "Tooltip symbol insight" and "Error
insight" under Options->Editor options->Code insights largely fix
this issue, but of course it's annoying during debugging. It's a
large project (around 300 forms + 200 units). I only keep files open
that I'm currently editing.

The IDE usually has to open more files than the ones you see in editor
windows, check the buffer list (Ctrl-B if memory serves).

In a classical RAD project you tend to end up with a lot of circular
references between your units. Such references slow down the parsing of
the code, and that is not only important for compilation speed, it also
affects the background parser that is involved in IDE functions that
depend on a syntactical analysis of the code you are editing. In
addition such projects tend to use lots of 3rd-party components, which
results in a long search path and increases the number of units the
compiler may have to check.

I'm also using XE5 for my largest active project (which started 5 years
ago <g>). It has about 200 forms, frames, and data modules, and around
450 units in total. I only use 1 (non-visual) 3rd party library, and 1
IDe add-in (MMX), and my forms are decoupled as well as possible (a
form may know about another form class if it has to create an instance
of that form class, but never the other way around. Necessary
communication between forms is done through custom messages or
interfaces, such shared communication mechanisms are declared in a
single unit not connected to any specific forms). I have never seen
such delays in the IDE.

So, my advice would be

- use a tool like Peganza's Pascal Analyzer to identify circular
references in you code base and strive to remove as many of them as you
can. Move unit references from the interface to the implementation Uses
clause as much as possible.
- make sure your IDE library path only contains 3rd-party folders
with dcu (and dfm) files, not with source files.
- if the project only uses some of the 3rd-party packages you have
installed it may pay off to create a dedicated IDE configuration for
this particular project that only contains the 3rd-party packages you
actually use in the project, with a correspondingly shorter library
path. Look up the online help for the -r command line switch.
- use high-end hardware, the faster your develoment machine is the
better, since these problems are basically performance problems.

I'm a long term user of Delphi, I use it since version 1.0, I find it
a great tool to develop desktop applications (compared to the WPF /
xaml crap from MS), it has excellent third party libraries, but it's
just a pitty that every new release is still plagued with the same
bugs from previous releases.

Is anybody experiencing the same problem ? How about latest XE8 ?

It is not much better in this regard. Some of the limitation is
probably in the 32 bit architecture, with its limited address space. We
can only hope for the future here, but moving such a complex
application to 64 bit is probably not something done in a few weeks of
spare time <g>.


--
Peter Below (TeamB)

Nico Callewaert

Posts: 22
Registered: 5/9/02
Re: Delphi XE5 - non stop hourglass in IDE  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 31, 2015 4:15 AM   in response to: Peter Below in response to: Peter Below
Hi Peter,

Thanks a lot for your reply. I will check the things you mentioned, esp. the references between units and fix them.
Is there a difference between the interface uses clause and the implementation one when it comes to speed ? I put units in the interface uses clause that are used by the class definition and the rest in the implementation uses clause.
And yes my hardware is not the best, in fact I don't like much the use of laptops for building software, will ask better hardware :-)

Thank you and best regards !
Nico
Peter Below

Posts: 1,227
Registered: 12/16/99
Re: Delphi XE5 - non stop hourglass in IDE  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 31, 2015 6:21 AM   in response to: Nico Callewaert in response to: Nico Callewaert
Nico Callewaert wrote:

Hi Peter,

Thanks a lot for your reply. I will check the things you mentioned,
esp. the references between units and fix them. Is there a
difference between the interface uses clause and the implementation
one when it comes to speed ?

Yes, it has an impact on compilation speed and the number of open files
the compiler has to manage. It also has an impact on run-time behaviour
when it comes to the unit initialization and finalization sequence: for
a unit named in the interface uses clause it is guaranteed that this
unit will be initialized before the unit that containes the uses clause.

I put units in the interface uses clause
that are used by the class definition and the rest in the
implementation uses clause.

That is the way one should organize it: the interface uses clause
should only contain unit actually needed by the declarations in the
interface part of the unit, or units which must be initalized before
the current one (usually only relevant if said unit contains an
initialization section).

And yes my hardware is not the best, in
fact I don't like much the use of laptops for building software, will
ask better hardware :-)

Thank you and best regards !
Nico


--
Peter Below (TeamB)

Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02