Hi Smartgwt team,
During performance measurements of our application we noticed that Smartgwt (Version 13.0-p20220625) needs by far the most CPU time in the com.isomorphic.io.file.ISCClassPathFile area when accessing the server.
On closer analysis, I noticed that a class com.isomorphic.store.DataStructCache.XMLOrJSFile(java.lang.String) is called here, which implements a simple cache.
After activating the appropriate log level, I saw that a lot of the following output is logged on each cache access - every time!
When analyzing the code line in the profiler / Intellij debugging, I noticed the following here.
If a searched file is not found in the DataStructCache, then this is noted in a HashSet called failSet, but a new access triggers again several read accesses to the file system which leads to the corresponding CPU load per datasource access.
According to my understanding an optimization would be conceivable here that if a search word is already contained in the failSet HashSet is not searched again since it is to be assumed that with the subsequent call also no success is to be expected.
Could you please check if my conclusion here is correct and if so I would ask for a corresponding fix.
Best Regards
Helmut
During performance measurements of our application we noticed that Smartgwt (Version 13.0-p20220625) needs by far the most CPU time in the com.isomorphic.io.file.ISCClassPathFile area when accessing the server.
On closer analysis, I noticed that a class com.isomorphic.store.DataStructCache.XMLOrJSFile(java.lang.String) is called here, which implements a simple cache.
After activating the appropriate log level, I saw that a lot of the following output is logged on each cache access - every time!
When analyzing the code line in the profiler / Intellij debugging, I noticed the following here.
If a searched file is not found in the DataStructCache, then this is noted in a HashSet called failSet, but a new access triggers again several read accesses to the file system which leads to the corresponding CPU load per datasource access.
According to my understanding an optimization would be conceivable here that if a search word is already contained in the failSet HashSet is not searched again since it is to be assumed that with the subsequent call also no success is to be expected.
Could you please check if my conclusion here is correct and if so I would ask for a corresponding fix.
Best Regards
Helmut
Comment