利用Chrome的Heap Snapshot功能分析一个时间段内的内存占用率
在下图测试代码第13行和第16行设断点. 以调试方式运行,首先断点在第13行处触发:
打开Chrome开发者工具,点击Profiles tab, 再点击按钮"Take Snapshot":
生成一个Snapshot, ID为3:
继续以调试mode执行代码到第16行,点击按钮"Take heap snapshot"以生成第二个snapshot。从下拉菜单里选择"Objects allocated between Snapshot 3 and Snapshot 4":
在下图Summary里用变量名"arra"做filter,即可找出在snapshot3和snapshot4之间内存占用最高的变量arra:
将鼠标停留在arra上即可查看这个变量包含的内容:
使用Chrome开发者工具的DOM断点功能可以让您快速找到修改了某一个DOM元素的Javascript代码。
在Chrome开发者工具里,选中想要监控的DOM元素,点击右键,选择Break on->Attributes modifications:
之后在DOM Breakpoints的tab里能看到对应的断点:
然后回到Chrome里继续操作,Chrome开发者工具的调试器就会自动在DOM的属性发生变化的地方停下来:
从调试器的调用上下文能了解到是下图第17行的hide方法设置了display:none的属性导致DOM断点的触发。
CDS view注解解析 - @Environment.systemField
下面的CDS view使用到了@Environment.systemField这个注解,定义了两个参数#SYSTEM_LANGUAGE和#USER。
这个view从CRM物料主数据的产品抬头表COMM_PRODUCT读取product_id, product_type,以及comm_prshtext表里读取产品的描述信息,存储在字段description里。
@AbapCatalog.sqlViewName: 'zprdtext' @AbapCatalog.compiler.compareFilter: true @AccessControl.authorizationCheck: #CHECK @EndUserText.label: 'Jerry product description' define view Zproductdescription with parameters @Consumption.hidden: true @Environment.systemField: #SYSTEM_LANGUAGE P_Language : syLangu, @Consumption.hidden: true @Environment.systemField : #USER p_uname : syst_uname as select from comm_product as product inner join comm_prshtext as _text on product.product_guid = _text.product_guid { key product.product_id, product.product_type, _text.short_text as description } where product.upname = :p_uname and _text.langu = :p_Language
当我们在ABAP Development Studio里预览该view时, 我们会被要求给这两个参数指定值:
在Open SQL里,这两个参数会自动被分别赋以ABAP编程语言里系统变量sy-langu和sy-uname的值。
data: lt_result TYPE TABLE OF Zproductdescription. SELECT * FROM Zproductdescription INTO TABLE @lt_result .
这一点我们可以通过使用事务码ST05得到的trace里得到确认:在运行时P_LANGUAGE被赋以了sy-langu的值E,而P_UNAME被赋以sy-uname的值WANGJER.
- 点赞
- 收藏
- 关注作者
评论(0)