云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

亚马逊云_爱情公寓4百度云资源_免费领

小七 141 0

我非常喜欢abapoo中的返回参数,我认为它使ABAP代码更加一致和可读,请参阅https://www.cqse.eu/en/blog/coding abap like java/#keep-方法调用simple和consistent作为例子。

我尽可能地使用它,也用于深层结构和内部表。但是,标准SAP代码检查器检查"参数传递性能差"指出:

并且返回总是按值传递,这总是给出至少40%的性能损失!?而传递值将使用两倍的内存?

因为内存非常便宜,所以使用简化的代码来降低40%的性能是值得的吗?我写了一个简短的测试程序,它调用了两种方法:按引用传递和按值传递。代码可在https://github.com/larshp/return \u by \u value测试已经在750SP02上运行了。

返回/导出100次100万行(约1GB),平均值是:

使用返回似乎不会慢40%,大数据+,但与填充表所需的时间相比,40%的基数可能非常小,hmm

内存消耗

如果pass by value复制数据,则返回所需的内存消耗应该是导出所需的两倍。但是,在调试器中查看内存消耗时,返回的峰值与导出的峰值相同,但实际的内核中间内存峰值可能没有发送到内存分析工具。

让我们尝试处理一个500.000行(500mb)的内部表,并检查内存使用情况,

2个500mb内容的相同表只需要500mb,因为它们似乎共享相同的内存,大数据主要学什么,即只制作一个浅拷贝。修改表内容:

每个表占用500mb.

内部表共享

表共享的概念在月/A-Developers-Guide-To-Protecting-Memory-Detect-And-Eliminate-Damaging-Memory-Leaks-With-ABAP-Memory其中提到"表共享也会发生导入或导出时,参数按"值"传递,移动物联网卡,但不返回。

另见

https://help.sap.com/http.svc/rc/abapdocu\u 750\u index\u htm/7.50/en-US/abensharing\u glosry.htm

https://help.sap.com/http.svc/rc/abapdocu\u 750\u index\u htm/7.50/en-US/abentable\u sharing\u glosry.htm

这提供了一些额外的提示。

作为特殊情况表共享用于返回中的嵌套表,

结论

返回可用于传递大型内部表,如有疑问,可编写小型测试程序来测试假设或尝试运行标准SAP代码检查器检查"性能检查"->"参数传递性能差"。与ABAP中的其他内容一样,这里很可能有一些特殊的情况,好评返现文案,上面没有提到。

,有哪些云服务器