On Mon, 10 Oct 2022 16:46:25 GMT, Mark Powers <mpow...@openjdk.org> wrote:

>> Hi,
>> 
>> May I have the code clean up reviewed?
>>  
>> There is a lot of computation in AESCrypt class load, which could be avoid 
>> by using the computation result directly. The computation takes 6.971875 
>> milliseconds in a MacOS M1 laptop. Although it is a one-time computation, 
>> but removing the computation could speed up java/jvm loading time by 
>> 6.971875 milliseconds without extra memory cost. 
>> 
>> Actually, because the computation result are used directly, the methods that 
>> supports the computation are no longer needed and the related static arrays 
>> are no longer needed.  This is the extra benefits to use the computation 
>> result directly, rather than computing on class initialization.
>> 
>> This patch does not change the logic except removing the pre-computation 
>> code and initializing the tables with the pre-computed result explicitly.  
>> The existing regression and inter-op tests should be sufficient to ensure 
>> that the tables are correctly copied from the dumping of the old computation 
>> code results.
>> 
>> Except that, I also cleaned up some code warnings from the IDE I used.
>> 
>> Thanks,
>> Xuelei
>
> src/java.base/share/classes/com/sun/crypto/provider/AESCrypt.java line 1065:
> 
>> 1063:      * @param decrypting True if 'kr' is for decryption and false 
>> otherwise.
>> 1064:      */
>> 1065:     private static int[] expandToSubKey(int[][] kr, boolean 
>> decrypting) {
> 
> I received the following code review comment back in April:
> "Even though a static method is implicitly final and IJ is correct, the final 
> keyword does prevent subclasses from inadvertently using the same method 
> signature."

Good point!

-------------

PR: https://git.openjdk.org/jdk/pull/10568

Reply via email to