Activity
From 12/19/2022 to 01/17/2023
01/17/2023
- 06:28 PM Feature #7045 (Review): re-implement "normal" (non-abend) stack unwinding to avoid throwing an ex...
- Constantin: Please review 7045a revision 14479.
- 06:26 PM Feature #7045: re-implement "normal" (non-abend) stack unwinding to avoid throwing an exception
- In addition to user-defined functions, 2 additional callable program types which are efectively the equivalent of use...
- 09:24 AM Feature #7045: re-implement "normal" (non-abend) stack unwinding to avoid throwing an exception
- I'm working on a simple approach for now. Rather than reimplementing all of the flow control for the cases where the...
- 09:13 AM Feature #3853: implement LOG-MANAGER runtime
- +This diagram shows the current state of the call stack producing error logs (not a complete view):+
!clientlog-ol... - 06:36 AM Feature #6821: java collection performance
- As far as I can see, only @pruneSessionCache()@ issue is left here.
- 06:35 AM Feature #6821: java collection performance
- > You will see that the Scopeable scopestart/finished do lots of work - please check if it may be possible to condens...
- 02:35 AM Feature #6817: replace INSTANTIATING-PROCEDURE and other handle<ExternalProgram> with the actual ...
- Constantin Asofiei wrote:
> 6129b/14365 fixes a problem related to WidgetPool .
The change is good, thanks!
01/16/2023
- 03:54 PM Feature #6824: lazy initialization of collection class members
- Some other changes related to this are in 6129b/14366.
- 03:54 PM Support #4032: block/transaction processing context-local and other performance improvements
- Another batch of changes related to this is in 6129b/14366
- 03:53 PM Feature #6827: reduce the memory footprint of WrappedResource implementations: replace BDTs with ...
- 6129b/14366 contains a set of changes related to this, I don't think there's anything else remaining related to the w...
- 03:53 PM Feature #6826: reduce the BDT usage in FWD runtime
- 6129b/14366 contains a set of changes related to this, mainly from what profiling a large customer app showed.
- 03:51 PM Feature #6817 (Test): replace INSTANTIATING-PROCEDURE and other handle<ExternalProgram> with the ...
- 6129b/14365 fixes a problem related to WidgetPool .
- 03:51 AM Feature #6817 (Review): replace INSTANTIATING-PROCEDURE and other handle<ExternalProgram> with th...
- I checked in the changes in 6129b revision 14364. In addition to the attached 6817a.diff I also modified the followin...
- 02:10 AM Feature #6817: replace INSTANTIATING-PROCEDURE and other handle<ExternalProgram> with the actual ...
- Hynek, I don't see any issue with the patch. Also, the comments don't introduce anything new. Please add header ent...
- 11:51 AM Bug #6399: ENCRYPT/DECRYPT built-in function results different than 4GL when IV is shorter than r...
- The runtime implementation of this is in @SecurityOps.encrypt()/decrypt()@. There should be no conversion changes ne...
- 11:49 AM Feature #6421: finish GENERATE-RANDOM-KEY support
- The runtime implementation of this is in @SecurityOps.generateRandomKey()@. There should be no conversion changes ne...
- 11:41 AM Feature #6421 (WIP): finish GENERATE-RANDOM-KEY support
- 10:41 AM Feature #6821: java collection performance
- Stanislav Lomany wrote:
> Performance overhead in function vs procedure is cause by throwing @ReturnUnwindException@... - 08:24 AM Feature #6821: java collection performance
- Performance overhead in function vs procedure is cause by throwing @ReturnUnwindException@. I think that in vast majo...
- 10:29 AM Feature #7045 (Test): re-implement "normal" (non-abend) stack unwinding to avoid throwing an exce...
- 03:52 AM Feature #6820 (WIP): reduce String.toLowerCase and toUpperCase usage and String instances
01/14/2023
- 04:57 PM Feature #6821: java collection performance
- Stanislav Lomany wrote:
> [...]
>
> It looks interesting to me that functions are executed 10 times slower than p... - 04:28 PM Feature #6821: java collection performance
- ...
01/13/2023
- 05:23 PM Feature #6817: replace INSTANTIATING-PROCEDURE and other handle<ExternalProgram> with the actual ...
- The attached diff contains @handle@ replacements for the @com.goldencode.p2j.persist@ Java package. I left several co...
- 02:21 PM Feature #6821: java collection performance
- Committed 6129b rev 14358: Final round of performance improvements which are replacements of some 'for-each' loops wi...
- 08:42 AM Feature #3853: implement LOG-MANAGER runtime
- When @-clientlog@ or @LOG-MANAGER:LOGFILE-NAME@ is defined logging level 1 is always enabled (except if explicitly se...
- 02:52 AM Feature #3853: implement LOG-MANAGER runtime
- Marian Edu wrote:
> Bref, using @-errostack@ has no effect on the client log so don't bother with it in this case.
... - 02:43 AM Feature #3853: implement LOG-MANAGER runtime
- Greg Shah wrote:
> Marian: Can you offer any guidance?
* @-errorstack@ (@session:error-stack-trace@) has no effec...
01/12/2023
- 10:05 AM Feature #3853: implement LOG-MANAGER runtime
- Marian: Can you offer any guidance?
- 06:40 AM Feature #3853: implement LOG-MANAGER runtime
- I'm trying to find the difference in the log files when @SESSION:ERROR-STACK-TRACE@ (@-errorstack@) is enabled, but f...
- 09:33 PM Feature #6824: lazy initialization of collection class members
- Review of: 6129b/14348.
I am OK with the code. However, in @DataSet@, when it is decided that @callbacks == null@ ...
01/10/2023
- 02:15 PM Feature #6827: reduce the memory footprint of WrappedResource implementations: replace BDTs with ...
- I'm still on #6821, so feel free to do anything you want here.
- 02:13 PM Feature #6827: reduce the memory footprint of WrappedResource implementations: replace BDTs with ...
- Stanislav, do you need help here?
- 12:14 PM Feature #6821: java collection performance
- Committed 6129b rev 14351: @P2JIndex.components()@ provides direct access to the components array in order to improve...
- 11:13 AM Feature #6821: java collection performance
- Greg Shah wrote:
> Don't we already know the exact list of rowids used for all @UPDATE@ statements? We also know th... - 10:27 AM Feature #6821: java collection performance
- > Ultimately, we could iterate the tables individually and process (delete/update then invalidate) the records indivi...
- 08:40 PM Feature #6821: java collection performance
- The reason @pruneSessionCache()@ is called on @afterBuf@ and @beforeBuf@ after a batch operation executed using SQL d...
- 10:51 AM Feature #6826: reduce the BDT usage in FWD runtime
- Stanislav Lomany wrote:
> No.
OK, I'm taking it, as is easier to look in the profiler and see what can be reduced.
- 10:50 AM Feature #6826: reduce the BDT usage in FWD runtime
- No.
- 10:50 AM Feature #6826: reduce the BDT usage in FWD runtime
- Stanislav, did you start work on this?
- 09:20 AM Feature #3853: implement LOG-MANAGER runtime
- *Logging level rules:*
|Startup params/4GL setters|Auto set logging level|
|none|2|
|-logentrytypes (invalid)|0|... - 07:38 AM Feature #6650: improve performance of Scopeable notification in TM.processScopeNotifications
- 6129b/14350 improves:
* OUTPUT parameter processing: track if an output parameter is associated with a table field, ... - 07:34 AM Support #4032: block/transaction processing context-local and other performance improvements
- A batch of changes (including #4032-5) are in 6129b/14349
- 07:12 AM Feature #6824: lazy initialization of collection class members
- A batch of changes (including #6824-4) are in 6129b/14348
Please review.
01/09/2023
- 12:58 PM Feature #6821: java collection performance
- Greg Shah wrote:
> I was thinking of the DMO in its buffer form, not the concept of the specific record that is co... - 07:33 AM Feature #6821: java collection performance
- > PreselectQuery.components() - 430k
Committed 6129b rev 14345: replaced components iterator with @ArrayList.get()... - 06:58 AM Feature #6821: java collection performance
- Eric Faulhaber wrote:
> Greg Shah wrote:
> > Eric Faulhaber wrote:
> > > Greg Shah wrote:
> > > > > Greg, are you... - 06:33 AM Feature #6821: java collection performance
- Stanislav Lomany wrote:
> > I would start with Java arrays first (look for @[]@ in the text).
>
> Constantin, are... - 08:57 AM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- Greg Shah wrote:
> I understand there is no performance difference in lambdas themselves. I'm wondering about the c...
01/08/2023
- 01:36 PM Feature #6821: java collection performance
- > I would start with Java arrays first (look for @[]@ in the text).
Constantin, are you suggesting to replace enha...
01/07/2023
- 05:51 PM Feature #6821: java collection performance
- The "for" cycle changes reviewed by Constantin were merged and committed as 6129b rev 14344.
01/06/2023
- 05:53 PM Feature #6821: java collection performance
- Greg Shah wrote:
> Eric Faulhaber wrote:
> > Greg Shah wrote:
> > > > Greg, are you suggesting to maintain for tem... - 03:41 PM Feature #6821: java collection performance
- > Please backport this 3821c/14472 to 6129b and commit it there.
Committed as 6129b rev 14343. - 02:19 PM Feature #6821: java collection performance
- Eric Faulhaber wrote:
> Greg Shah wrote:
> > > Greg, are you suggesting to maintain for temp-tables a map of Record... - 02:18 PM Feature #6821: java collection performance
- Do we assign a new @rowid@ when we copy temp-table records from one temp-table to another, like in table parameter pr...
- 02:07 PM Feature #6821: java collection performance
- I made an assumption that temp-table record IDs are not unique across multiplex IDs, which is wrong, as you're saying...
- 02:05 PM Feature #6821: java collection performance
- Stanislav Lomany wrote:
> > Do I understand correctly that only the most recently added entry will be kept and any o... - 02:03 PM Feature #6821: java collection performance
- Greg Shah wrote:
> One thing that is not obvious to me is how the cache is used. Since we are using temp-tables wit... - 02:01 PM Feature #6821: java collection performance
- > Do I understand correctly that only the most recently added entry will be kept and any older entry is overwritten? ...
- 01:56 PM Feature #6821: java collection performance
- Greg Shah wrote:
> > Greg, are you suggesting to maintain for temp-tables a map of RecordBuffer.dmoClass -> Set of r... - 01:29 PM Feature #6821: java collection performance
- One thing that is not obvious to me is how the cache is used. Since we are using temp-tables with this mechanism, it...
- 01:25 PM Feature #6821: java collection performance
- > Greg, are you suggesting to maintain for temp-tables a map of RecordBuffer.dmoClass -> Set of records?
Not exac... - 12:52 PM Feature #6821: java collection performance
- @invalidateRecords@ method is called only for temp-tables. And called only by @ACCEPT-CHANGES@ method (I'm interested...
- 12:25 PM Feature #6821: java collection performance
- All usage of @Session.invalidateRecords()@ comes from @RecordBuffer.pruneSessionCache()@ which is only called in 2 pl...
- 12:05 PM Feature #6821: java collection performance
- Stanislav Lomany wrote:
> > TableMapper$LegacyFieldInfo.getMutableInfo 1.8 million
>
> This one looks like cachin... - 11:39 AM Feature #6821: java collection performance
- > TableMapper$LegacyFieldInfo.getMutableInfo 1.8 million
This one looks like caching may be slightly improved, but... - 02:14 AM Feature #6821: java collection performance
- Stanislav Lomany wrote:
> > You also need checks if this is the single resource in the chain being deleted, in this ... - 03:05 PM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- I understand there is no performance difference in lambdas themselves. I'm wondering about the call to @LambdaFactor...
- 02:51 PM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- Greg Shah wrote:
> The dynamic generation of the lambdas for an external procedure is only done the first time the e... - 10:44 AM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- The dynamic generation of the lambdas for an external procedure is only done the first time the external proc is load...
- 10:22 AM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- Eric: Are you OK with the proxy and persistence changes?
- 10:22 AM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- Code Review 6819_20221223_6129b_14341.patch
I have no objections. - 02:44 PM Support #4032: block/transaction processing context-local and other performance improvements
- Constantin Asofiei wrote:
> * I think I'll do some experimenting if keeping the reference of @ProcedureManager$Proce...
01/05/2023
- 02:37 PM Feature #6821: java collection performance
- > You also need checks if this is the single resource in the chain being deleted, in this firstResource/lastResource ...
- 06:20 AM Feature #6821: java collection performance
- Constantin Asofiei wrote:
> Attached is a space-delimited file with all FOR EACH loops which have a List, ArrayList ... - 04:26 AM Feature #6821: java collection performance
- Forgot to add the csv file.
- 04:25 AM Feature #6821: java collection performance
- Keep in mind that this:...
- 04:25 AM Feature #6821: java collection performance
- Stanislav Lomany wrote:
> > what branch and revision did you use for this patch?
>
> 3821c rev 14467.
The patch ... - 01:54 PM Support #4032: block/transaction processing context-local and other performance improvements
- Attached is a trace file with @ContextLocal.get@ usage in a customer application. This is expanded on 3 levels, leve...
- 08:10 AM Feature #3853: implement LOG-MANAGER runtime
- > > Is this different than @MESSAGE VIEW-AS ALERT-BOX@? Or is this just the case where the 4GL handles the really lo...
- 08:10 AM Feature #3853: implement LOG-MANAGER runtime
- > It is @ContextLocal@, which creates an instance of the log manager wrapper through @class Fallback extends ThreadLo...
- 07:57 AM Feature #3853: implement LOG-MANAGER runtime
- Greg Shah wrote:
> We must solve this properly. The behavior needs to match the 4GL implementation while implementi... - 07:51 AM Feature #3853: implement LOG-MANAGER runtime
- Greg Shah wrote:
> Is this different than @MESSAGE VIEW-AS ALERT-BOX@? Or is this just the case where the 4GL handl... - 07:49 AM Feature #3853: implement LOG-MANAGER runtime
- Greg Shah wrote:
> > Our implementation of @LOG-MANAGER@ runs purely on the server.
>
> It is certainly preferab... - 07:48 AM Feature #3853: implement LOG-MANAGER runtime
- > Do we want also the 32767 chars limit for @LOG-MANAGER:WRITE-MESSAGE@?
Yes. Also, please implement the limit of... - 06:47 AM Feature #3853: implement LOG-MANAGER runtime
- A few observations in relationship to max log message length (tested):
* By default statement length is limited to... - 04:47 AM Feature #3853: implement LOG-MANAGER runtime
- Greg Shah wrote:
> Does the 4GL have an implicit set of settings for @LOG-MANAGER@ in an appserver process? If so, ... - 03:50 AM Feature #3853: implement LOG-MANAGER runtime
- Constantin Asofiei wrote:
> Galya: please post what logmanager related config needs to added.
4GL LOG-MANAGER con... - 03:06 AM Feature #3853: implement LOG-MANAGER runtime
- Greg Shah wrote:
> For @logthreshold@ and @numlogfiles@ and the other items from #3853-19, we should be able to conf...
01/04/2023
- 02:44 PM Feature #6817 (WIP): replace INSTANTIATING-PROCEDURE and other handle<ExternalProgram> with the a...
- 11:23 AM Feature #6817: replace INSTANTIATING-PROCEDURE and other handle<ExternalProgram> with the actual ...
- In Eclipse, there is a way to look for a field or local variable of a certain type. Other IDEs should have something...
- 12:46 PM Feature #3853: implement LOG-MANAGER runtime
- Greg Shah wrote:
> From Galya via email:
>
> > I've tested gui, batch, web gui clients and they are working well ... - 12:33 PM Feature #3853: implement LOG-MANAGER runtime
- From Galya via email:
> I've tested gui, batch, web gui clients and they are working well with @LOG-MANAGER@. But ... - 12:29 PM Feature #3853: implement LOG-MANAGER runtime
- For @logthreshold@ and @numlogfiles@ and the other items from #3853-19, we should be able to configure these via 2 me...
- 08:04 AM Feature #3853: implement LOG-MANAGER runtime
- Galya Bogdanova wrote:
> open a @-debugalert@ separate task (maybe #4065 or this one #3853) to migrate the logic to ... - 07:55 AM Feature #3853: implement LOG-MANAGER runtime
- Galya Bogdanova wrote:
> P.S.S. The easiest quickest patch to complete #5753 would be to just switch the dependency ... - 04:58 AM Feature #3853: implement LOG-MANAGER runtime
- *Current clientlog implementation and -debugalert*
Currently the code uses @-clientlog@ startup param to enable lo... - 03:10 AM Feature #3853: implement LOG-MANAGER runtime
- *Rotation and testing*
A substantial part of LOG-MANAGER's logic is related to handling rotation of log files and is... - 08:54 AM Feature #6821: java collection performance
- > what branch and revision did you use for this patch?
3821c rev 14467. - 05:17 AM Feature #6821: java collection performance
- Stanislav Lomany wrote:
> > Related to map access (hashCode calls):
> > ** @HandleChain.delete@ 880k
>
> Maybe w... - 05:13 AM Feature #6821: java collection performance
- Stanislav Lomany wrote:
> Please review the diff which replaces "for-each" loops with indexed "for" loops (I'll add ... - 08:32 AM Feature #6824 (WIP): lazy initialization of collection class members
01/03/2023
- 02:54 PM Feature #6821: java collection performance
- > Related to map access (hashCode calls):
> ** @HandleChain.delete@ 880k
Maybe we don't need to perform @first/la... - 08:33 AM Feature #3853: implement LOG-MANAGER runtime
- > Do we show the same error when LOG-MANAGER:WRITE-MESSAGE tries to write more than 15000 chars? If yes, then we'll h...
01/02/2023
- 05:21 PM Feature #6821: java collection performance
- Please review the diff which replaces "for-each" loops with indexed "for" loops (I'll add headers later), specificall...
12/28/2022
- 07:27 AM Feature #6410: implement additional built-in OO classes/interfaces
- Greg Shah wrote:
> Yes, please use @PROVERSION@ and preprocessing to conditionally implement logic by OE version.
...
12/23/2022
- 11:55 AM Feature #6824: lazy initialization of collection class members
- Some notes :
* @BufferImpl.callbacks@ can be lazily created, not all buffers are used in FILL operations.
* @Record... - 08:30 AM Feature #3853: implement LOG-MANAGER runtime
- @LOG-MANAGER:WRITE-MESSAGE@ supports by default text up to 15000 characters (actually it should be less, since that i...
- 05:45 AM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- Constantin Asofiei wrote:
> Constantin Asofiei wrote:
> > Attached patch is built on top of #6939 patch. Eric, ple...
12/21/2022
- 02:29 PM Feature #6827: reduce the memory footprint of WrappedResource implementations: replace BDTs with ...
- I think the @object@ fields need to remain as-is, for the reference counting to work (which affects when these get de...
- 02:28 PM Feature #6827: reduce the memory footprint of WrappedResource implementations: replace BDTs with ...
- This code:...
- 09:38 AM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- Constantin Asofiei wrote:
> Attached patch is built on top of #6939 patch. Eric, please review and use this one for...
12/20/2022
- 02:19 PM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- Attached patch is built on top of #6939 patch. Eric, please review and use this one for your tests.
- 04:40 AM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- I've tested with a 'static bytecode' (i.e. 10k .java files each with 300 lambdas, checked the disassembled .class and...
- 07:47 AM Feature #7000: Replace old-style synchronization primitives with java.util.concurrent classes
- Greg Shah wrote:
> Do you have specific areas seen in profiling where these old-style primitives are heavily involve... - 06:24 AM Feature #7000: Replace old-style synchronization primitives with java.util.concurrent classes
- Do you have specific areas seen in profiling where these old-style primitives are heavily involved?
- 03:22 AM Feature #7000: Replace old-style synchronization primitives with java.util.concurrent classes
- FWD code contains many places where old-style synchronization primitives (@synchronized@ blocks, @wait@/@notify@) are...
- 02:58 AM Feature #7000 (New): Replace old-style synchronization primitives with java.util.concurrent classes
12/19/2022
- 06:08 PM Feature #3853: implement LOG-MANAGER runtime
- > > The base implementation is already handled at conversion and it is stubbed out in the runtime.
>
> Does it mea... - 06:35 AM Feature #3853: implement LOG-MANAGER runtime
- Greg Shah wrote:
> The base implementation is already handled at conversion and it is stubbed out in the runtime.
... - 11:28 AM Feature #6821: java collection performance
- For @ArrayList.iterator()@, the top callers are:
* @PreselectQuery.components()@ - 430k
* @AnnotatedAst.notifyListe... - 10:26 AM Feature #6821: java collection performance
- The ones that are most important are listed in #6821-4. We aren't suggesting changing things everywhere.
- 10:22 AM Feature #6821: java collection performance
- That may be true. There're about 2k foreach loops, and about 10% of them can be updated. If we want, we can can limit...
- 09:57 AM Feature #6821: java collection performance
- Stanislav Lomany wrote:
> > Actually, I doubt that such optimization will result in any significant performance in a... - 09:56 AM Feature #6821: java collection performance
- Small improvements over millions of calls add up. The fact that the profiling tools don't show obvious hotspots mean...
- 09:45 AM Feature #6821: java collection performance
- Greg Shah wrote:
> > I would perform benchmarking/profiling first.
>
> This is what was done. See #6821-4.
Th... - 09:31 AM Feature #6821: java collection performance
- > The point with all the Map and Set iterators is that they allocate lots of short-lived objects.
That's true. I m... - 09:25 AM Feature #6821: java collection performance
- > Actually, I doubt that such optimization will result in any significant performance in all situations.
I did som... - 09:18 AM Feature #6821: java collection performance
- > I would perform benchmarking/profiling first.
This is what was done. See #6821-4. - 05:12 AM Feature #6821: java collection performance
- Actually, I doubt that such optimization will result in any significant performance in all situations. See e.g. a dis...
- 04:54 AM Feature #6821: java collection performance
- Stanislav Lomany wrote:
> I assume we're taking about replacing
Correct.
> I found that there're not so many plac... - 04:45 AM Feature #6821 (WIP): java collection performance
- Constantin,
> For example, using Java for-each loop for an an ArrayList instead of a @for@ and getting the element... - 09:08 AM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- > the performance decreased a lot (there may be some internal storage which affects the INVOKEDYNAMIC instruction at ...
- 09:08 AM Feature #6819: refactor FWD proxy implementation to use ReflectASM instead of Java Method reflection
- From Constantin:
> More with the the lambda for ControlFlowOps, I think the lambda performance is directly proport...
Also available in: Atom