Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 312041

Summary: long (infinite) time of indexing when analysis/refactoring is enabled
Product: [Tools] PTP Reporter: Yang Li <liya>
Component: Photran.Refactoring EngineAssignee: Photran Inbox <photran-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: com-eclipse-dot-org
Version: 5.0   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Yang Li CLA 2010-05-07 07:25:40 EDT
When the analysis/refactoring is enabled, it takes extremely long time for indexing, and slows down the PC tremendously. It happens only if there are still compiling errors in the code, but it is definitely not avoidable that errors appear while programming, especially coding a new Fortran subroutine.
Comment 1 Jeffrey Overbey CLA 2010-05-07 10:25:28 EDT
Can you attach (or send me privately) the specific code that's giving the problem?  Is there a specific kind of error you can introduce in the code that slows it down?

(We need to be able to reproduce this to determine what, specifically, is causing the problem...)
Comment 2 Jeffrey Overbey CLA 2010-05-13 22:43:30 EDT
I am closing this in order to triage for the Helios RC next week.

If you can provide some code that demonstrates the error, please do, and we will re-open this bug.
Comment 3 Yang Li CLA 2010-05-14 04:44:48 EDT
(In reply to comment #2)
> I am closing this in order to triage for the Helios RC next week.
> 
> If you can provide some code that demonstrates the error, please do, and we
> will re-open this bug.

I am very sorry for the late reply and sorry for my previous non-detailed description! :)

Our code is for numerical simulation which includes complicated calculation by employing FEM. In Photran we created our project with self-written Makefiles.  The src code are distributed into several folders. Each folder contains a Makefile, and a "main" Makefile under the root of the project which will call the sub Makefiles. It compiles and does indexing without any problem if there is no syntax errors in the code. However, during editing (and as usual, syntax errors occur while editing) sometimes it takes almost forever to index, and of course it occupies almost the whole CPU. It happens mostly when eclipse is running for a while, we assume it's the problem of full stack, but we are not 100% sure. The problem sometimes can be solved by restarting Eclipse.
Comment 4 Jeffrey Overbey CLA 2010-05-14 09:29:10 EDT
Thanks for the reply.  I'm having trouble figuring out what could be causing this, though.

The only thing I can think of is this: When you change a file, Photran has to re-index that file, but it also has to re-index all of the files that depend on it.  So, if you have a module A that is used by module B and program C, then when you change A, Photran also has to re-index B and C.  So if the syntax errors are in files with lots of dependents, indexing will take much longer since it has to re-index several files.

Photran 6 RC 1 will be available next week.  I will announce it on the mailing list.  Could you please try it and see if you still have this problem?

When you try it out, please do this:
1. Click Window > Preferences
2. Switch to the General category, and check the box that says "Show heap status"
2. Switch to the Fortran category, and check the box that says "(Debugging) Enable Fortran indexer (VPG database) logging"
3. Click OK
4. Close Eclipse
5. Re-start Eclipse, but launch it from a command prompt

The first option will put a bar in the lower right-hand corner of the workbench that shows how much memory Eclipse is using.  The second option will cause Photran to write a bunch of performance measurements to standard output as the indexer is running.  Hopefully, by watching these, you can trace down whether or not a particular file is causing the problem specifically.
Comment 5 Yang Li CLA 2010-05-14 10:51:09 EDT
Thank you very much for your suggestion! We will try it and of course also on the coming release.