TreeMap - Issue with Large Numbers of Directories...

TeeChart VCL for Borland/CodeGear/Embarcadero RAD Studio, Delphi and C++ Builder.
Post Reply
TimeAcct
Newbie
Newbie
Posts: 43
Joined: Wed Sep 03, 2008 12:00 am

TreeMap - Issue with Large Numbers of Directories...

Post by TimeAcct » Tue Jun 08, 2010 1:30 am

Hello,

I have been having a problem with an error while loading the TreeMap Series. It has taken me a number of hours to track down - as the error message does not give a line number using EurekaLog.

Basically - I have directory sizing utility - and I have implemented the TreeMap as another way of looking at the disk space.
The problem I am running into - is when I try to load large numbers of directories...

I get the error...
Type: EInvalidOp
Message: Invalid floating point operation.

and the call stack is not much more helpful to me

Module Procedure
MyApplication MyApplication
USER32.dll DispatchMessageW
USER32.dll DispatchMessageW
USER32.dll TranslateAcceleratorW

When I say large - I mean large numbers. I can easily load 3-4000 directories - but when I started testing larger numbers like 10,000+ it gives me the message above. And I have customers that are going to want to load directory trees in the 200,000 range. I seem to be able to replicate this fairly consistantly.

Any thoughts as to why this is happening? And yes I am aware that I probably shouldn't be loading that many items into the TreeMap - but it is a valid use of it - and it should crash more gracefully :)


Bradley MacDonald

Yeray
Site Admin
Site Admin
Posts: 9617
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: TreeMap - Issue with Large Numbers of Directories...

Post by Yeray » Tue Jun 08, 2010 10:44 am

Hi Bradley,

Could you please send us a simple example project we can run as-is to reproduce the problem here?
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

TimeAcct
Newbie
Newbie
Posts: 43
Joined: Wed Sep 03, 2008 12:00 am

Re: TreeMap - Issue with Large Numbers of Directories...

Post by TimeAcct » Tue Jun 08, 2010 1:07 pm

I will write one - and send it to you - it will take me a few days to create it due to other commitments.

TimeAcct
Newbie
Newbie
Posts: 43
Joined: Wed Sep 03, 2008 12:00 am

Re: TreeMap - Issue with Large Numbers of Directories...

Post by TimeAcct » Sat Jul 17, 2010 7:21 pm

OK- I have created a simple project to do this. However, it is a large download - due to needing the Tree Data for the example.

You can download it from http://www.timeacct.com/files/disktriag ... pError.zip
This file contains the compiled EXE, the source and the data file that needs to be loaded at run time. The download is about 5.5 MB

Basically - when you get it - uncompress it into a new directory.
1. Run the program
2. Click the Load button on the Lower Left hand corner.
This will load the data into the tree - and it does take a few minutes (the data file is 60+ MB in size)
3. You will then have a tree loaded on the left hand side of the screen - and the TreeMap chart on the right.

If you click on a directory in the tree - then the TreeMap will be loaded with the Directory information from that directory downward. Thus you can see how it works by clicking on some of the directories with only a few hundred subdirectories (one of the colums in the TreeView).
If you howwever, click on C:\ or one of the other with 10,000+ directories - you will get the after after a few moments of the program trying to load the Tree into the TreeMap.
NOTE: I have an event on the Tree - that happens ever time the directory is change. It calls the routine that loads the TreeMap.

This I can replicate every time now. Any directory over 5,000 subdirectories - and it crashes.


As well I have some screen shots from Eurkalog - download them at http://www.timeacct.com/files/disktriag ... Error2.zip
These screnen shots shows one assembler screen that shows the error is in the TreeMap TChart conrol (I believe anyway)

Let me know what elese I can do to help solve this one.

G. Bradley MacDonald
brad_AT_timeacct_DOT_com

Narcís
Site Admin
Site Admin
Posts: 14730
Joined: Mon Jun 09, 2003 4:00 am
Location: Banyoles, Catalonia
Contact:

Re: TreeMap - Issue with Large Numbers of Directories...

Post by Narcís » Mon Jul 19, 2010 1:56 pm

Hi G. Bradley,

Thanks for the example project. Luckily I could install DevExpress components to be able to run it :wink:. I could reproduce the "invalid floating point operation" issue and found a fix for it. Being a source code customer you can try implementing the fix at your end. At TeeTreeMapSeries.pas, at the TTreeMapSeries.DrawAllValues, in the CalcNodesSize method nested procedure, change this line:

Code: Select all

          tmpPercent:=tmpItem.Value/totalW;
for this:

Code: Select all

          if totalW > 0 then tmpPercent:=tmpItem.Value/totalW
          else tmpPercent:=0;
Can you please confirm this works fine at your end? Loading the text file into the tree and loading any directory into TeeChart just took a few seconds for me here. I removed EurekaLog references since we don't have it here. I wonder if using it slows down application when errors occur.

Thanks in advance.
Best Regards,
Narcís Calvet / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

TimeAcct
Newbie
Newbie
Posts: 43
Joined: Wed Sep 03, 2008 12:00 am

Re: TreeMap - Issue with Large Numbers of Directories...

Post by TimeAcct » Mon Jul 19, 2010 8:19 pm

Thank you very much!

This has solved the problem. I can now view really large directory strucutres

Bradley MacDonald

PS. That was very FAST!! Great support.

Narcís
Site Admin
Site Admin
Posts: 14730
Joined: Mon Jun 09, 2003 4:00 am
Location: Banyoles, Catalonia
Contact:

Re: TreeMap - Issue with Large Numbers of Directories...

Post by Narcís » Tue Jul 20, 2010 7:28 am

Hi Bradley,

You're very welcome! Thanks for your kind word, I'm glad to hear that helped.
Best Regards,
Narcís Calvet / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Post Reply