一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

函数执行时长信息输出方法和装置、电子设备和存储介质与流程

2022-06-08 12:57:00 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,尤其涉及一种函数执行时长信息输出方法和装置、电子设备和存储介质。


背景技术:

2.目前,随着各类系统的广泛使用,以及各类系统的复杂性和使用强度的越来越大,例如,在现有的数据库系统上,或生产环境上,容易出现高并发场景。
3.在相关技术中,在高并发场景下,如果性能出现问题,则需要判断出是因为哪个函数耗时过长导致的,但是,相关技术中未提供一种可以确定出函数运行所耗费时长的方法。
4.因此,相关技术中存在无法确定出函数运行时长的问题。


技术实现要素:

5.本技术提供了一种函数执行时长信息输出方法和装置、电子设备和存储介质,以至少解决相关技术中存在无法确定出函数运行时长的问题。
6.根据本技术实施例的一个方面,提供了一种函数执行时长信息输出方法,包括:
7.获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息;
8.通过所述目标线程将所述目标执行时长信息写入目标内存中与所述目标线程对应的目标内存分空间;
9.输出所述目标内存分空间中的所述目标执行时长信息。
10.可选地,如前述的方法,所述获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息包括:
11.记录开始执行所述目标函数的第一系统时间;
12.在所述目标函数结束执行的情况下,记录第二系统时间;
13.基于所述第二系统时间与所述第一系统时间之差得到所述目标执行时长,并得到所述目标执行时长对应的所述目标执行时长信息。
14.可选地,如前述的方法,在所述通过所述目标线程将所述目标执行时长信息写入目标内存中与所述目标线程对应的目标内存分空间之前,所述方法还包括:
15.申请得到目标空间的所述目标内存,且所述目标内存的起始地址4k对齐;
16.根据预设的目标数量,对所述目标空间进行划分,得到所述目标数量的内存分空间,其中,与每个所述内存分空间对应的起始地址4k对齐,且每个所述内存分空间的内存大小为4k的整数倍。
17.可选地,如前述的方法,所述通过所述目标线程将所述目标执行时长信息写入目标内存中与所述目标线程对应的目标内存分空间包括:
18.在所述目标内存的所有内存分空间中确定出所述目标线程对应的所述目标内存分空间;
19.获取所述目标函数的目标函数名,并建立所述目标函数名与所述目标执行时长信
息之间的对应关系;
20.确定所述目标内存分空间中未使用内存的当前起始地址;
21.按照所述当前起始地址,通过所述目标线程将所述对应关系写入所述目标内存分空间中。
22.可选地,如前述的方法,所述在所述目标内存的所有内存分空间中确定出所述目标线程对应的所述目标内存分空间包括:
23.确定所述目标线程的线程标识;
24.对所述线程标识的低8位进行删除后,得到处理后线程标识;
25.根据所述处理后线程标识与目标数量进行求余得到的余数,在所有所述内存分空间中确定出排列次序与所述余数一致的所述目标内存分空间,其中,所述目标数量为所述内存分空间的数量,每个所述内存分空间的所述排列次序用于指示所述内存分空间对应的存储位置相对于所述目标内存中的其他所述内存分空间对应的存储位置之间的先后关系。
26.可选地,如前述的方法,所述输出所述目标内存分空间中的所述目标执行时长信息包括:
27.按照所述目标内存中各个内存分空间的排列次序,依次遍历各个所述内存分空间,其中,每个所述内存分空间的所述排列次序用于指示所述内存分空间对应的存储位置相对于所述目标内存中的其他所述内存分空间对应的存储位置之间的先后关系;
28.在遍历至所述目标内存分空间的情况下,将所述目标内存分空间中的所有数据输出至目标日志中,其中,所述数据中包括所述目标执行时长信息。
29.可选地,如前述的方法,在所述获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息之前,所述方法还包括:
30.获取计时命令;
31.响应于所述计时命令,执行用于跳转至所述获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息的跳转操作;
32.在所述输出所述目标内存分空间中的所述目标执行时长信息之后,所述方法还包括:
33.获取停止计时指令;
34.响应于所述停止计时指令,停止对任意函数的执行时长的统计;
35.在预设时间间隔之后,对所述目标内存进行释放。
36.根据本技术实施例的另一个方面,还提供了一种函数执行时长信息输出装置,包括:
37.获取模块,用于获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息;
38.写入模块,用于通过所述目标线程将所述目标执行时长信息写入目标内存中与所述目标线程对应的目标内存分空间;
39.输出模块,用于输出所述目标内存分空间中的所述目标执行时长信息。
40.根据本技术实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计
算机程序来执行上述任一实施例中的方法步骤。
41.根据本技术实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
42.在本技术实施例中,采用通过多个内存分空间进行执行时长信息写入和输出的方式,通过获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息;通过所述目标线程将所述目标执行时长信息写入目标内存中与所述目标线程对应的目标内存分空间;输出所述目标内存分空间中的所述目标执行时长信息。进而可以实现在目标内存分空间中写入目标执行时长信息以及对目标内存分空间中的目标执行时长信息进行输出的目的,在而可以实现对目标函数的目标执行时长信息进行输出的目的,达到了便于相关人员直观的获取各个函数的执行时长的技术效果,进而解决了相关技术中存在的当系统性能出现问题的情况下,无法判断哪个函数存在耗时过长的问题。
附图说明
43.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
44.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
45.图1是根据本技术实施例的一种可选的函数执行时长信息输出方法的流程示意图;
46.图2是根据本技术实施例的另一种可选的函数执行时长信息输出方法的流程示意图;
47.图3是根据本技术实施例的一种可选的函数执行时长信息输出装置的结构框图;
48.图4是根据本技术实施例的一种可选的电子设备的结构框图。
具体实施方式
49.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
50.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
51.根据本技术实施例的一个方面,提供了一种函数执行时长信息输出方法。可选地,在本实施例中,上述函数执行时长信息输出方法可以应用于由终端和服务器所构成的硬件环境中。服务器通过网络与终端进行连接,可用于为终端或终端上安装的客户端提供服务(如数据处理服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器提供数据存储服务。
52.上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:wifi(wireless fidelity,无线保真),蓝牙。终端可以并不限定于为pc、手机、平板电脑等。
53.本技术实施例的函数执行时长信息输出方法可以由服务器来执行,也可以由终端来执行,还可以是由服务器和终端共同执行。其中,终端执行本技术实施例的函数执行时长信息输出方法也可以是由安装在其上的客户端来执行。
54.以由服务器来执行本实施例中的函数执行时长信息输出方法为例,图1为本技术实施例提供的一种函数执行时长信息输出方法,包括如下所述步骤:
55.步骤s101,获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息。
56.本实施例中的执行时长信息输出方法可以应用于需要输出各个函数执行所需耗费的时长的场景,例如:在数据库系统性能出现问题的场景、生产环境性能出现问题的场景等,也可以是其他高并发场景。对于其他类型的场景,在不矛盾的情况下,上述的执行时长信息输出方法同样适用。
57.在目标线程指定目标函数之后,可以获取目标函数完成执行的目标执行时长,进而生成目标执行时长信息。
58.并且,每个线程用于执行一个函数,因此,当存在多个函数的情况下,可以通过多个线程分别执行其中的一个函数,并得到每个线程执行对应的函数后得到的目标执行时长。
59.步骤s102,通过目标线程将目标执行时长信息写入目标内存中与目标线程对应的目标内存分空间。
60.在得到目标执行时长的目标执行时长信息之后,可以将目标执行时长写入该目标线程对应的目标内存分空间。目标内存分空间可以是目标内存中划分出的,用于存储目标线程写入的数据的内存空间。
61.并且,当目标内存中划分出多个内存分空间的情况下,每个内存分空间可以对应有不同的线程,因此,每个内存分空间中可以存储有多个执行时长信息。
62.步骤s103,输出目标内存分空间中的目标执行时长信息。
63.在将目标执行时长信息存储至目标内存空间中的目标内存分空间之后,可以通过将目标内存分空间中的目标执行时长进行输出。以通过所需展示的方式对目标执行时长信息进行展示。
64.通过本实施例中的方法,可以在系统性能出现问题的情况下,通过将每个函数执行的时间信息写入对应的内存分空间,并将内存分空间中的执行时长信息输出,进而可以明确的记录各个函数的执行时长,以便于分析各个函数是否存在耗时过长的问题。
65.作为一种可选的实施方式,如前述的方法,所述步骤s101获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息包括如下所述步骤:
66.步骤s201,记录开始执行目标函数的第一系统时间。
67.为了确定目标函数的时长时长,可以确定出开始执行目标函数的开始时间,进而,可以记录开始执行目标函数的第一系统时间。
68.第一系统时间可以是开始执行目标函数的时间。
69.可选的,可以将目标函数执行的当下,触发对目标函数的执行时长的记录。
70.步骤s202,在目标函数结束执行的情况下,记录第二系统时间。
71.在目标函数结束执行之后,为了确定目标函数的时长时长,可以确定出结束执行目标函数的结束时间,进而,可以记录结束执行目标函数的第二系统时间。
72.第二系统时间可以是结束执行目标函数的时间。
73.可选的,可以将目标函数结束执行的当下,触发停止对目标函数的执行时长的记录,以得到第二系统时间。
74.步骤s203,基于第二系统时间与第一系统时间之差得到目标执行时长,并得到目标执行时长对应的目标执行时长信息。
75.在得到第二系统时间以及第一系统时间之后,可以基于第二系统时间与第一系统时间之差得到目标执行时长,即,目标执行时长=第二系统时间-第一系统时间。
76.在得到目标执行时长之后,即可得到与目标执行时长对应的目标执行时长信息。
77.谈过本实施例中的方法,可以达到确定出每个函数的执行时长,并生成对应的执行时长信息的目的。
78.作为一种可选的实施方式,如前述的方法,在所述步骤s102通过目标线程将目标执行时长信息写入目标内存中与目标线程对应的目标内存分空间之前,方法还包括如下所述步骤:
79.步骤s301,申请得到目标空间的目标内存,且目标内存的起始地址4k对齐。
80.为了划分得到目标内存,可以预先进行内存的申请,以在系统中申请得到目标空间的目标内存。
81.目标空间可以预先设定的,所需目标内存对应的空间。例如500m、1g等等。
82.并且,可以保证目标内存的起始地址4k对齐,以提升读写的效率。
83.例如,可以通过malloc函数申请的一块目标空间大小为500m的目标内存。
84.步骤s302,根据预设的目标数量,对目标空间进行划分,得到目标数量的内存分空间,其中,与每个内存分空间对应的起始地址4k对齐,且每个内存分空间的内存大小为4k的整数倍。
85.在获取目标内存之后,可以根据预设的目标数量,对目标空间进行划分,得到与目标数量一致的内存分空间,可选的,可以按照目标数量对目标空间进行平均划分之后得到目标数量的内存分空间。进一步的,与每个内存分空间对应的起始地址4k(4096b)对齐,且每个内存分空间的内存大小为4k的整数倍,进而可以达到提升读写的效率的目的。
86.在每个内存分空间的大小相同的情况下,第n份内存分空间的地址的起始地址为x n
×
m,x为4k对齐的大内存的起始地址m为每份内存大小,为4k的整数倍。
87.可选地,在对目标内存的单位时间读取的数据量少于单位时间写入的数量,且目
标内存的剩余空间在目标内存的所有空间中所占的比例小于或等于预设阈值的情况下,可以申请得到指定空间的指定内存,并划分得到指定数量的指定内存分空间,并且在后期优先将各个线程执行函数后生成的时长信息写入指定内存分空间中。同时,在不增加内存的情况下,当各个内存分空间已满时,可以按照写入内存分空间的由远及近的时间,对各个历史时长信息进行覆盖的方式,将新生成的时长信息写入内存分空间中。
88.通过本实施例中的方法,通过将目标内存分割为多个内存分空间,进而可以同步在不同的内存分空间中写入时长信息,以达到提高效率的目的。
89.如图2所示,作为一种可选的实施方式,如前述的方法,所述步骤s102通过目标线程将目标执行时长信息写入目标内存中与目标线程对应的目标内存分空间包括如下所述步骤:
90.步骤s401,在目标内存的所有内存分空间中确定出目标线程对应的目标内存分空间。
91.有前述实施例已知,目标内存中存在多个内存分空间的情况,因此,在该情况下,需要从多个内存分空间中确定出目标线程对应的目标内存分空间。
92.步骤s402,获取目标函数的目标函数名,并建立目标函数名与目标执行时长信息之间的对应关系。
93.在往目标内存分空间中写入目标执行时长信息之前,还需要确定写入的数据的格式,为了便于输出后可以确定出每个执行时长信息对应的函数,因此,还需要获取目标函数的目标函数名,并且建立目标函数名与目标执行时长信息之间的对应关系。
94.进一步的,该对应关系中还可以包括目标线程的线程id;进而得到的对应关系的记录格式可以是:线程id 空格 函数名简写(即,目标函数名) 空格 执行时长(单位为微秒)。
95.步骤s403,确定目标内存分空间中未使用内存的当前起始地址。
96.在确定出目标内存分空间之后,即需要将对应关系写入该目标内存分空间中,为了完成写入的操作,需要确定出目标内存分空间中未使用内存的当前起始地址。
97.可选地,记录内存方法为len =sprintf(x n
×
m len,”%s”,str);即在每份内存分空间中未使用内存的当前起始地址追加记录。
98.步骤s404,按照当前起始地址,通过目标线程将对应关系写入目标内存分空间中。
99.在确定出当前起始地址以及对应关系之后,即可通过目标线程将对应关系以当前起始地址作为第一个写入的地址,将对应关系写入目标内存分空间中。
100.通过本实施例中的方法,可以达到内存中的每个时长信息都可以确定出对应的函数的目的,并且可以保证每个对应关系是按序写入对应的内存分空间中,进而有效避免对内存的浪费。
101.作为一种可选的实施方式,如前述的方法,所述步骤s401在目标内存的所有内存分空间中确定出目标线程对应的目标内存分空间包括如下所述步骤:
102.步骤s501,确定目标线程的线程标识。
103.在确定出目标线程之后,可以确定出用于指示该目标线程的唯一的线程标识。
104.例如,可以通过pthead_self()记录当前线程标识,如0x7f5728423700。
105.步骤s502,对线程标识的低8位进行删除后,得到处理后线程标识。
106.在获取线程标识之后,一般情况下线程标识为16进制,且低8位为0,因此,低8位即为线程标识的后两位,且为0。进而,对线程标识的低8位进行删除即为对为0的后两位进行删除,以得到处理后线程标识。
107.在前述步骤所示示例的基础上,对“0x7f5728423700”的低8位向右移动8位后进行数据处理(尾数不为0)后,得到的处理后线程标识即为“0x7f57284237”。
108.步骤s503,根据处理后线程标识与目标数量进行求余得到的余数,在所有内存分空间中确定出排列次序与余数一致的目标内存分空间,其中,目标数量为内存分空间的数量,每个内存分空间的排列次序用于指示内存分空间对应的存储位置相对于目标内存中的其他内存分空间对应的存储位置之间的先后关系。
109.在得到处理后线程标识之后,为了将线程标识分配至各个内存分空间中,并确定出目标线程对应的目标内存分空间,可以将处理后线程标识除以目标数量,并得到对应的余数,然后根据余数在所有内存分空间中确定出排列次序与余数一致的目标内存分空间。
110.可选地,排列次序可以是按照各个内存分空间在目标内存中的地址的先后次序进行排列得到的次序。
111.例如,当对目标内存划分为n份,如129份,处理后线程标识通过129求余得到的n,则对应目标内存中的第n份内存分空间,如,n为0的情况下,则分配至所有内存分空间中的排列次序为第一个的内存分空间,n为1的情况下,则分配至所有内存分空间中的排列次序为第二个的内存分空间。
112.通过本实施例中的方法,可以均匀的将各个线程与内存分空间之间建立对应关系,以使每个内存分空间中可以均匀的写入各个函数的执行时长信息,进而可以避免出现每个内存分空间的缓存负荷不一致的情况。
113.作为一种可选的实施方式,如前述的方法,所述步骤s103输出目标内存分空间中的目标执行时长信息包括如下所述步骤:
114.步骤s601,按照目标内存中各个内存分空间的排列次序,依次遍历各个内存分空间,其中,每个内存分空间的排列次序用于指示内存分空间对应的存储位置相对于目标内存中的其他内存分空间对应的存储位置之间的先后关系。
115.在得到确定出每个内存分空间对应的排列次序之后,可按照该排列次序依次对各个内存分空间进行遍历,以依次对各个内存分空间中的数据进行读取。
116.例如,当存在排列次序分别为0、1、2、3、
……
128的内存分空间(即对目标空间划分为129份内存分空间)时,即可按照0、1、2、3、
……
128的次序,依次遍历各个内存分空间,以对各个内存分空间中的数据进行读取。
117.步骤s602,在遍历至目标内存分空间的情况下,将目标内存分空间中的所有数据输出至目标日志中,其中,数据中包括目标执行时长信息。
118.当遍历至目标内存分空间之后,可以将目标内存分空间中当下包括的所有数据输出至目标内存中。并且,由于所有数据中包括目标执行时长信息,因此,可以达到对目标执行时长信息进行输出的目的。对于所有内存分空间中的任一个,当遍历到该内存分空间的情况下,均可按照本实施例中的方法对其中的数据进行输出。
119.进一步的,在遍历至目标内存分空间时,可以先确定上一次读取到的数据所存储的历史位置,然后在当前输出过程中,可以对历史位置之后的后一位置开始进行数据的读
取,并将读取到的数据输出至目标日志中。
120.例如,可以按照固定周期,定时执行打印命令,把目标内存的里的数据输出到日志中。通过循环遍历每一份内存分空间,根据每份内存分空间的长度,把内存中的记录的日志信息输出。
121.通过本实施例中的方法,可以通过依次对各个内存分空间进行遍历的方式,达到输出内存分空间中的目标执行时长信息的目的,进而可以通过此方法对所有执行时长信息进行输出,便于相关人员可以直观的确认各个函数的执行时长。
122.作为一种可选的实施方式,如前述的方法,在所述步骤s101获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息之前,方法还包括如下所述步骤:
123.步骤s701,获取计时命令;
124.步骤s702,响应于计时命令,执行用于跳转至获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息的跳转操作。
125.可选地,可以通过计时命令打开记录函数执行时间的开关,例如,新创建的一条命令,如“set xx=on”,以启动获取目标函数的执行时长,此外,还可以是其他命令,在此不一一赘述。
126.在获取该计时命令之后,可以对该计时命令进行响应,执行用于跳转至步骤s101获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息的跳转操作,以执行步骤s101。
127.在所述步骤s103输出目标内存分空间中的目标执行时长信息之后,方法还包括如下所述步骤:
128.步骤s801,获取停止计时指令;
129.步骤s802,响应于停止计时指令,停止对任意函数的执行时长的统计;
130.步骤s803,在预设时间间隔之后,对目标内存进行释放。
131.可选地,可以通过停止计时指令关闭记录函数执行时间的开关,例如,通过新创建的一条命令,如“set xx=off”,以停止获取目标函数的执行时长,并关闭函数的执行时间的统计,此外,还可以是其他命令,在此不一一赘述。
132.在获取该计时命令之后,可以对该计时命令进行响应,停止对任意函数的执行时长的统计。可选地,可以是在确定出存在耗时过长的函数之后,自动生成该停止计时指令。
133.在停止进行函数的执行时间的统计之后,可以把申请的目标内存通过free函数把整个目标内存释放掉,释放的过程中,可以是在停止进行统计的预设时间间隔之后,不再记录函数的执行时间,后台异步释放,例如,大约10分钟后对目标内存进行释放,防止内存释放的过程中目标内存还在使用,造成错误。
134.通过本实施例中的方法,提供了一种能够开启或关闭函数执行时长统计的方法,并且可以在关闭函数执行时长统计之后,对目标内存进行释放,以达到提升内存使用率,提升系统性能的目的。
135.如下所示,提供一种应用前述任一实施例的应用例:
136.1.通过命令打开记录函数执行时间的开关:
137.新创建的一条命令,如“set xx=on”,以触发后续的获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息的步骤;
138.2.申请一块内存空间:
139.通过malloc函数申请一块目标内存如500m的内存,目标内存的起始内存通过4k对齐;
140.3.把目标内存划分为n份空间,每个线程通过写其中的一份:
141.划分为n份内存分空间,每一份内存分空间为4k(4096b)的整数倍,确保起始地址以4k对齐;
142.4.在执行的函数的过程中,开始执行前记录当前系统时间,函数执行结束记录当前系统时间,计算出函数的执行时间。
143.记录执行时间的过程如下:
144.《1》通过pthead_self()记录当前线程标识如0x7f5728423700,地址再向右移动8位即为0x7f57284237(地址信息低8位都为0,去掉后,当求余计算时,可以提升划分的均匀度);
145.《2》目标内存划分为n份,如129份内存分空间,处理后线程标识通过129求余得到的余数n,则对应目标内存划分的第n份内存分空间;
146.第n份地址的起始地址为x n
×
m,x为4k对齐的目标内存的起始地址,m为每份内存分空间大小,为4k的整数倍;
147.记录内存方法为len =sprintf(x n
×
m len,”%s”,str);即在每份内存的起始地址追加记录;
148.内存记录的格式为“线程id 空格 函数名简写 空格 执行时间(单位为微秒)”;
149.5.定时执行命令,异步输出函数执行时间:
150.定时执行打印命令,把目标内存里的所有数据输出到日志中。通过循环遍历每一份内存分空间,根据每份内存分空间的长度,把内存分空间中的记录的日志信息依次输出;
151.6.关闭函数执行时间统计:
152.通过新创建的一条命令,如“set xx=off”。
153.7.释放申请的内存空间:
154.把申请的目标内存通过free函数释放掉,释放的过程中,在通过上述步骤6不再记录函数的执行时间后,后台即可进行异步释放,大约10分钟(即,预设时间间隔)后释放,防止目标内存在执行内存释放的过程中还在使用。
155.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。
156.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom(read-only memory,只读存储器)/ram(random access memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或
者网络设备等)执行本技术各个实施例所述的方法。
157.根据本技术实施例的另一个方面,还提供了一种用于实施上述函数执行时长信息输出方法的函数执行时长信息输出装置。图3是根据本技术实施例的一种可选的函数执行时长信息输出装置的结构框图,如图3所示,该装置可以包括:
158.获取模块1,用于获取目标线程完成执行目标函数的目标执行时长的目标执行时长信息;
159.写入模块2,用于通过目标线程将目标执行时长信息写入目标内存中与目标线程对应的目标内存分空间;
160.输出模块3,用于输出目标内存分空间中的目标执行时长信息。
161.需要说明的是,该实施例中的获取模块1可以用于执行上述步骤s101,该实施例中的写入模块2可以用于执行上述步骤s102,该实施例中的输出模块3可以用于执行上述步骤s103。
162.此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
163.根据本技术实施例的又一个方面,还提供了一种用于实施上述函数执行时长信息输出方法的电子设备,该电子设备可以是服务器、终端、或者其组合。
164.根据本技术的另一个实施例,还提供一种电子设备,包括:如图4所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
165.存储器1503,用于存放计算机程序;
166.处理器1501,用于执行存储器1503上所存放的程序时,实现上述方法实施例的步骤。
167.上述电子设备提到的总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
168.通信接口用于上述电子设备与其他设备之间的通信。
169.存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
170.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
171.本技术实施例还提供一种计算机可读存储介质,存储介质包括存储的程序,其中,程序运行时执行上述方法实施例的方法步骤。
172.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
173.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献