From 4a51d2845cda07cf62bcb8288e6a89762add9fbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20K=C3=A4semann?= Date: Thu, 26 Jul 2018 13:28:02 +0200 Subject: [PATCH] Small performance improvement in ZCL_ABAPGIT_FILE_STATUS=>CALCULATE_STATUS, where the subpackage information is read only once and then sorted and the sorted information can then be accessed through a binary search read. --- src/zcl_abapgit_file_status.clas.abap | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/zcl_abapgit_file_status.clas.abap b/src/zcl_abapgit_file_status.clas.abap index a44b9f6b7..bf3f258de 100644 --- a/src/zcl_abapgit_file_status.clas.abap +++ b/src/zcl_abapgit_file_status.clas.abap @@ -245,9 +245,12 @@ CLASS ZCL_ABAPGIT_FILE_STATUS IMPLEMENTATION. IF lv_sub_fetched = abap_false. lt_sub_packages = zcl_abapgit_factory=>get_sap_package( iv_devclass )->list_subpackages( ). lv_sub_fetched = abap_true. + SORT lt_sub_packages BY table_line. "Optimize Read Access ENDIF. * make sure the package is under the repo main package - READ TABLE lt_sub_packages WITH KEY table_line = ls_item-devclass TRANSPORTING NO FIELDS. + READ TABLE lt_sub_packages TRANSPORTING NO FIELDS + WITH KEY table_line = ls_item-devclass + BINARY SEARCH. IF sy-subrc <> 0. CLEAR ls_item-devclass. ENDIF.