select * from bseg into table @data(lt_bseg) UP TO 100000 rows.
loop at lt_bseg ASSIGNING FIELD-SYMBOL(<lfs_bseg>).
<lfs_bseg>-sgtxt = 'Changing Text Value'.
ENDLOOP.
GET TIME STAMP FIELD lv_t2.
lv_diff1 = lv_t2 - lv_t1.
data(lt_bseg_copy) = lt_bseg[].
GET TIME STAMP FIELD lv_t1.
loop at lt_bseg ASSIGNING <lfs_bseg>.
<lfs_bseg>-sgtxt = 'Changing Text Value'.
ENDLOOP.
GET TIME STAMP FIELD lv_t2.
lv_diff2 = lv_t2 - lv_t1.
lv_percentage = ( lv_diff2 / lv_diff1 ) .
********************************
****** FREEing Memory *********
********************************
FREE lt_bseg_copy.
loop at lt_bseg ASSIGNING <lfs_bseg>.
<lfs_bseg>-sgtxt = 'Changing Text Value'.
ENDLOOP.
GET TIME STAMP FIELD lv_t2.
lv_diff3 = lv_t2 - lv_t1.
DATA: lv_t1 TYPE timestampl,
lv_t2 TYPE timestampl,
lv_diff1 type p DECIMALS 2,
lv_diff2 type p DECIMALS 2,
lv_diff3 type p DECIMALS 2,
lv_percentage type i.
select * from bseg into table @data(lt_bseg) UP TO 100000 rows.
cl_demo_output=>begin_section( | Processing Internal table having { lines( lt_bseg ) } rows | ).
*********************************************************
****** Memory Allocated to One Internal Table *********
*********************************************************
cl_demo_output=>begin_section( |Memory Allocated to one internal table | ).
GET TIME STAMP FIELD lv_t1.
loop at lt_bseg ASSIGNING FIELD-SYMBOL(<lfs_bseg>).
<lfs_bseg>-sgtxt = 'Changing Text Value'.
ENDLOOP.
GET TIME STAMP FIELD lv_t2.
lv_diff1 = lv_t2 - lv_t1.
cl_demo_output=>write_text( |Time Taken to process { lines( lt_bseg ) } rows is - { lv_diff1 }| ).
*********************************************************
****** Memory Allocated to TWO Internal Tables *********
************ ITAB COPY *********************************
*********************************************************
data(lt_bseg_copy) = lt_bseg[].
cl_demo_output=>begin_section( | Memory Allocated to two internal table | ).
GET TIME STAMP FIELD lv_t1.
loop at lt_bseg ASSIGNING <lfs_bseg>.
<lfs_bseg>-sgtxt = 'Test'.
ENDLOOP.
GET TIME STAMP FIELD lv_t2.
lv_diff2 = lv_t2 - lv_t1.
cl_demo_output=>write_text( |Time Taken to process { lines( lt_bseg ) } rows is - { lv_diff2 }| ).
lv_percentage = ( lv_diff2 / lv_diff1 ) .
cl_demo_output=>write_text( |Performance decreased by { lv_percentage } times | ).
********************************
****** FREEing Memory *********
********************************
FREE lt_bseg_copy.
cl_demo_output=>begin_section( |Deallocating memory from one of the internal table| ).
GET TIME STAMP FIELD lv_t1.
loop at lt_bseg ASSIGNING <lfs_bseg>.
<lfs_bseg>-sgtxt = 'Test'.
ENDLOOP.
GET TIME STAMP FIELD lv_t2.
lv_diff3 = lv_t2 - lv_t1.
cl_demo_output=>write_text( |Time Taken to process { lines( lt_bseg ) } rows is - { lv_diff3 }| ).
lv_percentage = ( lv_diff2 / lv_diff3 ) .
cl_demo_output=>write_text( |Performance again increased by { lv_percentage } times| ).
cl_demo_output=>display( ).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
7 | |
6 | |
4 | |
4 | |
3 | |
3 | |
2 | |
2 | |
2 |