[ 
https://issues.apache.org/jira/browse/FLINK-39168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18061591#comment-18061591
 ] 

Thorne commented on FLINK-39168:
--------------------------------

https://github.com/apache/flink-cdc/pull/4288

> improve mysql’s snapshot-split-Cache split.splitId() result in a local 
> variable to avoid calling the method twice per iteration:        
> ----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-39168
>                 URL: https://issues.apache.org/jira/browse/FLINK-39168
>             Project: Flink
>          Issue Type: Improvement
>          Components: Flink CDC
>    Affects Versions: cdc-3.5.0
>            Reporter: Thorne
>            Priority: Minor
>
> A little improvement when get(split.splitId()) 。
>  
> Cache split.splitId() result in a local variable to avoid calling the method 
> twice per iteration:                                                          
>                         
>                                                                               
>                                                                               
>                          
>   - Clarity: Makes it explicit that both usages refer to the same value, 
> improving readability.                                                        
>                               
>   - Consistency: Eliminates any theoretical risk if splitId() were ever 
> changed to a non-pure method in the future.
>   - Minor efficiency: Avoids a redundant method dispatch on every iteration 
> of the loop. 
>  
> {code:java}
>  // split.splitId() 
> for (MySqlSchemalessSnapshotSplit split : assignedSnapshotSplit) {
>   BinlogOffset binlogOffset = splitFinishedOffsets.get(split.splitId()); // 
> for the same keys     new FinishedSnapshotSplitInfo(
>           split.getTableId(),
>           split.splitId(),   // for the same keys
>           split.getSplitStart(),
>           split.getSplitEnd(),
>           binlogOffset));
>  
> }
> // imporve
> for (MySqlSchemalessSnapshotSplit split : assignedSnapshotSplit) {
>       String splitId = split.splitId(); // cache once
>       BinlogOffset binlogOffset = splitFinishedOffsets.get(splitId);
>       finishedSnapshotSplitInfos.add(
>               new FinishedSnapshotSplitInfo(
>                       split.getTableId(),
>                       splitId,
>                       split.getSplitStart(),
>                       split.getSplitEnd(),
>                       binlogOffset));
>   }{code}
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to