Code::Blocks Forums

User forums => Using Code::Blocks => Topic started by: dje on February 12, 2007, 03:09:54 pm

Title: Max file size on C::B
Post by: dje on February 12, 2007, 03:09:54 pm
Hi !

I tried to open a trace big file in C::B (=~ 7Mo).

CB consumes all cpu (99% in task manager).
As soon as it is quiet, each new event makes C::B consume 99% cpu again.

Is there a file size limitation ?
It it a bug ?

Dje
Title: Re: Max file size on C::B
Post by: sethjackson on February 12, 2007, 06:32:52 pm
Just tried with a 13MB text file and C::B loaded it pretty fast. Now if I try a C++ file that big it takes longer..
What version are you using?

BTW did you mean 7MB or 70MB?
Title: Re: Max file size on C::B
Post by: Pecan on February 12, 2007, 07:12:37 pm
It's probably CodeCompletion scanning the file.
Title: Re: Max file size on C::B
Post by: sethjackson on February 12, 2007, 09:35:20 pm
It's probably CodeCompletion scanning the file.

Hmm that could be it. I always turn that off first....
Title: Re: Max file size on C::B
Post by: dje on February 12, 2007, 09:56:33 pm
Quote
BTW did you mean 7MB or 70MB?
It was a 7 MB trace file (ie non C++ file).
I think it can't be code completion because there is no parser for this kind of file.

But even if we admit this is code completion that parses an unknown format :

Quote
What version are you using?
SVN 3592

Dje
Title: Re: Max file size on C::B
Post by: mandrav on February 12, 2007, 11:52:12 pm
I think it can't be code completion because there is no parser for this kind of file.

But even if we admit this is code completion that parses an unknown format :
  • why does it monopolize cpu (99%) ?
  • why once we recover cpu, the first event (a kind of editor activation I think) makes C::B consume its released 99% ?

The code-completion parser may indeed be the cause of the trouble here. Since quite some time now, it's not parsing files based on their extension (file type). It is parsing (or trying to) anything that is thrown at its way. This change was made to be able to parse the C++ headers, which have no extension (e.g. vector, map, iostream, etc).

I see two possible solutions to this:
1) make it an option (aka "the manual way")
2) parse only files (belonging to project) with known extensions (i.e. C/C++ files) but ignore this filter for #included files

I 'll have to think this thing a bit more but I see solution nr.2 is more correct...