使用Asynchronous RFC call 拆分time consuming task
生活随笔
收集整理的這篇文章主要介紹了
使用Asynchronous RFC call 拆分time consuming task
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Created by Jerry Wang, last modified on May 05, 2014 Go to start of metadata
設計一個function module 模擬一個比較花費CPU計算時間的time consuming task.
FUNCTION zinsert. *"---------------------------------------------------------------------- *"*"Local Interface: *" IMPORTING *" VALUE(IV_INDEX) TYPE COMM_PRODUCT-PRODUCT_ID *"----------------------------------------------------------------------DATA: ls_line TYPE zjerry1,lv_cal TYPE timestamp,lv_cal1 TYPE timestamp.GET TIME STAMP FIELD lv_cal.DO 10000 TIMES.lv_cal = lv_cal + 1.lv_cal = ( lv_cal * 13 ) / 12.DO 100 TIMES.GET TIME STAMP FIELD lv_cal1.lv_cal = lv_cal * 13 / 17.ENDDO.ENDDO.ls_line-code_value = iv_index.INSERT zjerry1 FROM ls_line.ASSERT sy-subrc = 0.COMMIT WORK AND WAIT.ENDFUNCTION.在function 執行末尾會有一個database 的insert operation. Database table structure如下:
下面的report可以比較兩種調用ZINSERT 方式的性能差異.
方法1是在循環里順序調用ZINSERT,每次function call結束之后再進行下一次function調用。方法二是采用asynchronous RFC call的方式來并發操作.
兩種方式的性能差異見如下圖:
總結
以上是生活随笔為你收集整理的使用Asynchronous RFC call 拆分time consuming task的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 荣耀v20是屏幕指纹吗(荣耀官网荣耀手机
- 下一篇: 使用Repository informa