B4J Question Very large app -> slowdowns in code editor

MegatenFreak

Active Member
Licensed User
Hello.
The app I'm working on has been under development for two years, and it's currently massive, with more than 100,000 lines of code distributed in 150+ code modules.
For some time now I've been experiencing annoying slowdowns when coding in B4J and long lags in the smart error detection and the intellisense thing. I suppose it's due to the great size of the code. But I was wondering if there's anything I can do to reduce the lags and slowdowns.
Any suggestions are appreciated. Thanks.
 

MegatenFreak

Active Member
Licensed User
What is the memory usage (check with task manager)?

The first thing that I would have done is to take 100 of these modules and make them a b4xlib. It is very simple to do and it will help.
Memory usage begins at around 700 MB and gradually rises to nearly 2GB. I close and reopen B4J once in a while to remedy that. I think it's a memory leak, but I've never managed to find and cure it.
The library idea is exactly what I was looking for! a way to lighten the load. That would be great! and if I need to change part of it I can always edit the library.
I've never created a b4xlib. Could you point me in the right direction? Thanks a lot.
 
Upvote 0

Sandman

Expert
Licensed User
Longtime User
Could you point me in the right direction? Thanks a lot.
Sure, that's the direction:
1637830594468.png


Searching for b4xlib gave this post as #4 in the results:
 
Upvote 0

amykonio

Active Member
Licensed User
Longtime User
The IDE will soon be a 64 bit process. This will help with the memory usage as it will allow the IDE to consume more than 2gb or RAM.
It will help in this case.
Hi Erel.
The x86 ide will stop, or both x86 & x64 will be available?
Andreas.
 
Upvote 0

agraham

Expert
Licensed User
Longtime User
The latest 32 bit version will also be available for download.
I'm afraid that is a bit ambiguous - it could mean that you will just keep the present current versions available as 32 bit or do you intend that both 32 and 64 bit versions will be released for all future versions?
 
Upvote 0

amykonio

Active Member
Licensed User
Longtime User
I'm afraid that is a bit ambiguous - it could mean that you will just keep the present current versions available as 32 bit or do you intend that both 32 and 64 bit versions will be released for all future versions?
Well, my understanding is that new versions will be in x64. There will be a link to the last x86 build. Anyway, I believe that in long term we will have to use the x64 ide. Most computers today are running x64 windows.
 
Upvote 0

MegatenFreak

Active Member
Licensed User
The library idea is exactly what I was looking for! a way to lighten the load. That would be great! and if I need to change part of it I can always edit the library.
I gave the idea a try. Unfortunately, I couldn't use a normal (compiled) library, since my modules are very interdependent and 90% of them have their own layouts. I tried b4xlib. It does work, but has no effect on memory consumption and speed, which is no surprise as the library code is still present and active.
I guess I'll await the x64 IDE version. I hope that would improve the situation.
 
Upvote 0

agraham

Expert
Licensed User
Longtime User
Sorry
There will be a link to the last x86 build.
Sorry about being pedantic but this is still ambiguous in colloquial British English. It could mean that either the x86 build will always be (say) B4A v11 or it could mean that the x86 version is of the latest x64 version.

The 'last one' can have the double meaning of being the 'final one' or the 'latest one'. You can't tell which is the intended meaning without further qualification.
 
Upvote 0

MegatenFreak

Active Member
Licensed User
I can't see Erel clarifying that anywhere. You may 'believe' it but as I have pointed out up to now all the statements are ambiguous.
I don't mean to drag the conversation on, but just to clarify, the "I believe" part was just a habit I picked up from essay writing. What amykonio stated clearly signifies that there won't be x86 updates after a certain version, and Erel responded with "Exactly", which, well, is a perfect indication that he has verified the previous statement.
 
Upvote 0

agraham

Expert
Licensed User
Longtime User
What amykonio stated clearly signifies that there won't be x86 updates after a certain version
Sorry but it doesn't. The Chambers dictionary definition of 'last' is

Last
1.Latest
2.Coming or remaining after all the others
3.Final
4.Immediately before the present
5.Utmost
6.Ending a series
7.Most unlikely, least to be preferred

Note the ambiguity of meaning of (1) and (3) above. None of the statements regarding the x86 version clarify the intended meaning.
 
Upvote 0
Top