应用于C++的资源优化方法及装置与流程

未命名 09-18 阅读:88 评论:0

应用于c++的资源优化方法及装置
技术领域
1.本说明书实施例涉及计算机语言技术领域,特别涉及应用于c++的资源优化方法。


背景技术:

2.程序中的一个执行路线就叫做线程 (thread)。线程是“一个进程内部的控制序列”,一个进程中最少有一个线程。进程是资源竞争的基本单位,而线程是程序执行的基本单位,一个进程中的多人线程共享进程数据,但也有自己的数据。
3.目前,线程管理可以让程序拥有更好的性能,而在c++中,线程管理还不足,由此,亟需一种更好的方案。


技术实现要素:

4.有鉴于此,本说明书实施例提供了应用于c++的资源优化方法。本说明书一个或者多个实施例同时涉及应用于c++的资源优化装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
5.根据本说明书实施例的第一方面,提供了一种应用于c++的资源优化方法,包括:获取程序的原始代码,基于原始代码确定对象数据;基于对象数据确定目标线程资源;在程序运行的情况下,获取处理器信息;基于处理器信息,绑定目标线程资源和对象数据。
6.在一种可能的实现方式中,获取程序的原始代码,基于原始代码确定对象数据,包括:确定对象确定规则;基于对象确定规则从程序的原始代码中确定对象信息;基于对象信息进行实例化,并在线程管理模块进行注册,确定对象数据。
7.在一种可能的实现方式中,基于对象数据确定目标线程资源,包括:确定对象数据的数量信息,基于数量信息创建至少一个线程;将至少一个线程与各对象数据进行绑定,确定目标线程资源。
8.在一种可能的实现方式中,在程序运行的情况下,获取处理器信息,包括:确定处理规则,根据处理规则获取处理器运行时间信息和线程占用时间信息。
9.在一种可能的实现方式中,基于处理器信息,绑定目标线程资源和对象数据,包括:基于处理规则、处理器运行时间信息和线程占用时间信息确定处理器使用率;基于处理器使用率绑定目标线程资源和对象数据。
10.在一种可能的实现方式中,基于处理器使用率绑定目标线程资源和对象数据,包括:确定使用率阈值,在处理器使用率大于或等于使用率阈值的情况下,创建目标数
量线程;将对象数据绑定目标数量线程。
11.在一种可能的实现方式中,基于处理器使用率绑定目标线程资源和对象数据,包括:确定使用率阈值,在处理器使用率小于使用率阈值的情况下,销毁目标数量线程;将对象数据绑定至其他线程;其中,其他线程为除目标数量线程以外的线程。
12.根据本说明书实施例的第二方面,提供了一种应用于c++的资源优化装置,包括:数据获取模块,被配置为获取程序的原始代码,基于原始代码确定对象数据;线程确定模块,被配置为基于对象数据确定目标线程资源;信息获取模块,被配置为在程序运行的情况下,获取处理器信息;线程绑定模块,被配置为基于处理器信息,绑定目标线程资源和对象数据。
13.根据本说明书实施例的第三方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述应用于c++的资源优化方法的步骤。
14.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述应用于c++的资源优化方法的步骤。
15.根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述应用于c++的资源优化方法的步骤。
16.本说明书实施例提供应用于c++的资源优化方法及装置,其中应用于c++的资源优化方法包括:获取程序的原始代码,基于原始代码确定对象数据;基于对象数据确定目标线程资源;在程序运行的情况下,获取处理器信息;基于处理器信息,绑定目标线程资源和对象数据。通过获取程序的原始代码,基于原始代码确定对象数据;基于对象数据确定目标线程资源;在程序运行的情况下,获取处理器信息;基于处理器信息,绑定目标线程资源和对象数据,从而根据监测结果自动调优线程资源,合并空闲线程资源以减少系统负担,或自动增加线程进行负载均衡,提高了性能。
附图说明
17.图1是本说明书一个实施例提供的一种应用于c++的资源优化方法的场景示意图;图2是本说明书一个实施例提供的一种应用于c++的资源优化方法的流程图;图3是本说明书一个实施例提供的一种应用于c++的资源优化方法的绑定示意图;图4是本说明书一个实施例提供的一种应用于c++的资源优化装置的结构示意图;图5是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
18.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
19.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,
而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
20.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
21.在本说明书中,提供了应用于c++的资源优化方法,本说明书同时涉及应用于c++的资源优化装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
22.参见图1,图1示出了根据本说明书一个实施例提供的一种应用于c++的资源优化方法的场景示意图。
23.在图1的应用场景中,计算设备101可以获取程序的原始代码,基于原始代码确定对象数据102。然后,计算设备101可以基于对象数据102确定目标线程资源103。之后,计算设备101可以在程序运行的情况下,获取处理器信息104。最后,计算设备101可以基于处理器信息104,绑定目标线程资源103和对象数据102,如附图标记105所示。
24.需要说明的是,上述计算设备101可以是硬件,也可以是软件。当计算设备101为硬件时,可以实现成多个服务器或终端设备组成的分布式集群,也可以实现成单个服务器或单个终端设备。当计算设备101体现为软件时,可以安装在上述所列举的硬件设备中。其可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
25.参见图2,图2示出了根据本说明书一个实施例提供的一种应用于c++的资源优化方法的流程图,具体包括以下步骤。
26.步骤201:获取程序的原始代码,基于原始代码确定对象数据。
27.在一种可能的实现方式中,获取程序的原始代码,基于原始代码确定对象数据,包括:确定对象确定规则;基于对象确定规则从程序的原始代码中确定对象信息;基于对象信息进行实例化,并在线程管理模块进行注册,确定对象数据。
28.其中,原始代码可以为基于c++的原始代码。对象数据可以为其中的代码中的对象(object)。
29.在实际应用中,首先需要实例化处理类对象,并将对象注册到线程管理模块。
30.步骤202:基于对象数据确定目标线程资源。
31.在一种可能的实现方式中,基于对象数据确定目标线程资源,包括:确定对象数据的数量信息,基于数量信息创建至少一个线程;将至少一个线程与各对象数据进行绑定,确定目标线程资源。
32.在实际应用中,对象注册到线程管理模块之后,需要为每个对象创建一个线程,并将该线程与对象进行绑定,如,存在对象a和对象b,则创建2个线程,对象a和对象b分别绑定一个线程。
33.步骤203:在程序运行的情况下,获取处理器信息。
34.在一种可能的实现方式中,在程序运行的情况下,获取处理器信息,包括:确定处理规则,根据处理规则获取处理器运行时间信息和线程占用时间信息。
35.其中,处理规则可以为计算处理器使用率的公式规则。
36.在实际应用中,在程序运行的状态下,可以监测线程运行状态,计算线程cpu占用率(单核)。
37.具体的,线程cpu使用率计算方法:
38.其中,:某时刻线程的cpu使用时间,在linux系统的实际应用中可以通过/proc/进程id/task/线程id/stat获取;:某时刻cpu运行时间,在linux系统的实际应用中可以通过程序中运行系统命令“cat /proc/stat”获取。
39.步骤204:基于处理器信息,绑定目标线程资源和对象数据。
40.在一种可能的实现方式中,基于处理器信息,绑定目标线程资源和对象数据,包括:基于处理规则、处理器运行时间信息和线程占用时间信息确定处理器使用率;基于处理器使用率绑定目标线程资源和对象数据。
41.其中,处理器使用率可以为上述线程cpu使用率。
42.在实际应用中,在得到处理器占用率之后,可以根据监测结果,调整处理类与线程的绑定关系。
43.在一种可能的实现方式中,基于处理器使用率绑定目标线程资源和对象数据,包括:确定使用率阈值,在处理器使用率大于或等于使用率阈值的情况下,创建目标数量线程;将对象数据绑定目标数量线程。
44.具体的,在计算得到线程cpu使用率的情况下,若,新增线程,并将销毁处理类对象,重新实例化处理类,并绑定两个线程,重新执行。
45.在一种可能的实现方式中,基于处理器使用率绑定目标线程资源和对象数据,包括:确定使用率阈值,在处理器使用率小于使用率阈值的情况下,销毁目标数量线程;将对象数据绑定至其他线程;其中,其他线程为除目标数量线程以外的线程。
46.具体的,在计算得到线程cpu使用率的情况下,若,销毁线程,并将销毁处理类对象,重新实例化处理类,参见图3,将两个或多个对象绑定同一线程,重新执行。
47.进一步的,可以设置多个使用率阈值,基于多个使用率阈值进行不同数量的线程合并。在当前线程的处理器使用率小于第一使用率阈值的情况下,确定至少两个小于第一使用率阈值的处理器使用率对应的其他线程,并将当前线程和其他线程销毁,合并为同一线程,例如,线程1的,确定另外的线程2和线程3,线程2和线程3的,将线程1和线程2以及线程3进行合并。
48.又例如,线程1的,确定另一个线程2,线程2的,将线程1和线程2进行合并。
49.本说明书实施例提供应用于c++的资源优化方法及装置,其中应用于c++的资源优化方法包括:获取程序的原始代码,基于原始代码确定对象数据;基于对象数据确定目标线
程资源;在程序运行的情况下,获取处理器信息;基于处理器信息,绑定目标线程资源和对象数据。通过获取程序的原始代码,基于原始代码确定对象数据;基于对象数据确定目标线程资源;在程序运行的情况下,获取处理器信息;基于处理器信息,绑定目标线程资源和对象数据,从而根据监测结果自动调优线程资源,合并空闲线程资源以减少系统负担,或自动增加线程进行负载均衡,提高了性能。
50.与上述方法实施例相对应,本说明书还提供了应用于c++的资源优化装置实施例,图4示出了本说明书一个实施例提供的一种应用于c++的资源优化装置的结构示意图。如图4所示,该装置包括:根据本说明书实施例的第二方面,提供了一种应用于c++的资源优化装置,包括:数据获取模块401,被配置为获取程序的原始代码,基于原始代码确定对象数据;线程确定模块402,被配置为基于对象数据确定目标线程资源;信息获取模块403,被配置为在程序运行的情况下,获取处理器信息;线程绑定模块404,被配置为基于处理器信息,绑定目标线程资源和对象数据。
51.在一种可能的实现方式中,数据获取模块401,还被配置为:确定对象确定规则;基于对象确定规则从程序的原始代码中确定对象信息;基于对象信息进行实例化,并在线程管理模块进行注册,确定对象数据。
52.在一种可能的实现方式中,线程确定模块402,还被配置为:确定对象数据的数量信息,基于数量信息创建至少一个线程;将至少一个线程与各对象数据进行绑定,确定目标线程资源。
53.在一种可能的实现方式中,信息获取模块403,还被配置为:确定处理规则,根据处理规则获取处理器运行时间信息和线程占用时间信息。
54.在一种可能的实现方式中,线程绑定模块404,还被配置为:基于处理规则、处理器运行时间信息和线程占用时间信息确定处理器使用率;基于处理器使用率绑定目标线程资源和对象数据。
55.在一种可能的实现方式中,线程绑定模块404,还被配置为:确定使用率阈值,在处理器使用率大于或等于使用率阈值的情况下,创建目标数量线程;将对象数据绑定目标数量线程。
56.在一种可能的实现方式中,线程绑定模块404,还被配置为:确定使用率阈值,在处理器使用率小于使用率阈值的情况下,销毁目标数量线程;将对象数据绑定至其他线程;其中,其他线程为除目标数量线程以外的线程。
57.本说明书实施例提供应用于c++的资源优化方法及装置,其中应用于c++的资源优化方法包括:获取程序的原始代码,基于原始代码确定对象数据;基于对象数据确定目标线程资源;在程序运行的情况下,获取处理器信息;基于处理器信息,绑定目标线程资源和对象数据。通过获取程序的原始代码,基于原始代码确定对象数据;基于对象数据确定目标线程资源;在程序运行的情况下,获取处理器信息;基于处理器信息,绑定目标线程资源和对象数据,从而根据监测结果自动调优线程资源,合并空闲线程资源以减少系统负担,或自动增加线程进行负载均衡,提高了性能。
58.上述为本实施例的一种应用于c++的资源优化装置的示意性方案。需要说明的是,该应用于c++的资源优化装置的技术方案与上述的应用于c++的资源优化方法的技术方案
属于同一构思,应用于c++的资源优化装置的技术方案未详细描述的细节内容,均可以参见上述应用于c++的资源优化方法的技术方案的描述。
59.图5示出了根据本说明书一个实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
60.计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(pstn,public switched telephone network)、局域网(lan,local area network)、广域网(wan,wide area network)、个域网(pan,personal area network)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic,network interface controller))中的一个或多个,诸如ieee802.11无线局域网(wlan,wireless local area network)无线接口、全球微波互联接入(wi-max,worldwide interoperability for microwave access)接口、以太网接口、通用串行总线(usb,universal serial bus)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc,near field communication)。
61.在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
62.计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(pc,personal computer)的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
63.其中,处理器520用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述应用于c++的资源优化方法的步骤。上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的应用于c++的资源优化方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述应用于c++的资源优化方法的技术方案的描述。
64.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述应用于c++的资源优化方法的步骤。
65.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的应用于c++的资源优化方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述应用于c++的资源优化方法的技术方案的描述。
66.本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述应用于c++的资源优化方法的步骤。
67.上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的应用于c++的资源优化方法的技术方案属于同一构思,计算机程序的
技术方案未详细描述的细节内容,均可以参见上述应用于c++的资源优化方法的技术方案的描述。
68.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
69.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
70.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
71.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
72.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

技术特征:
1.一种应用于c++的资源优化方法,其特征在于,包括:获取程序的原始代码,基于所述原始代码确定对象数据;基于所述对象数据确定目标线程资源;在所述程序运行的情况下,获取处理器信息;基于所述处理器信息,绑定所述目标线程资源和所述对象数据。2.根据权利要求1所述的方法,其特征在于,所述获取程序的原始代码,基于所述原始代码确定对象数据,包括:确定对象确定规则;基于所述对象确定规则从程序的原始代码中确定对象信息;基于所述对象信息进行实例化,并在线程管理模块进行注册,确定对象数据。3.根据权利要求1所述的方法,其特征在于,所述基于所述对象数据确定目标线程资源,包括:确定所述对象数据的数量信息,基于所述数量信息创建至少一个线程;将所述至少一个线程与各所述对象数据进行绑定,确定目标线程资源。4.根据权利要求1所述的方法,其特征在于,所述在所述程序运行的情况下,获取处理器信息,包括:确定处理规则,根据所述处理规则获取所述处理器运行时间信息和线程占用时间信息。5.根据权利要求4所述的方法,其特征在于,所述基于所述处理器信息,绑定所述目标线程资源和所述对象数据,包括:基于所述处理规则、所述处理器运行时间信息和所述线程占用时间信息确定处理器使用率;基于所述处理器使用率绑定所述目标线程资源和所述对象数据。6.根据权利要求5所述的方法,其特征在于,所述基于所述处理器使用率绑定所述目标线程资源和所述对象数据,包括:确定使用率阈值,在所述处理器使用率大于或等于所述使用率阈值的情况下,创建目标数量线程;将所述对象数据绑定所述目标数量线程。7.根据权利要求5所述的方法,其特征在于,所述基于所述处理器使用率绑定所述目标线程资源和所述对象数据,包括:确定使用率阈值,在所述处理器使用率小于所述使用率阈值的情况下,销毁目标数量线程;将所述对象数据绑定至其他线程;其中,所述其他线程为除所述目标数量线程以外的线程。8.一种应用于c++的资源优化装置,其特征在于,包括:数据获取模块,被配置为获取程序的原始代码,基于所述原始代码确定对象数据;线程确定模块,被配置为基于所述对象数据确定目标线程资源;信息获取模块,被配置为在所述程序运行的情况下,获取处理器信息;线程绑定模块,被配置为基于所述处理器信息,绑定所述目标线程资源和所述对象数
据。9.一种计算设备,其特征在于,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至7任意一项所述应用于c++的资源优化方法的步骤。10.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至7任意一项所述应用于c++的资源优化方法的步骤。

技术总结
本说明书实施例提供应用于C++的资源优化方法及装置,其中应用于C++的资源优化方法包括:获取程序的原始代码,基于原始代码确定对象数据;基于对象数据确定目标线程资源;在程序运行的情况下,获取处理器信息;基于处理器信息,绑定目标线程资源和对象数据。通过获取程序的原始代码,基于原始代码确定对象数据;基于对象数据确定目标线程资源;在程序运行的情况下,获取处理器信息;基于处理器信息,绑定目标线程资源和对象数据,从而根据监测结果自动调优线程资源,合并空闲线程资源以减少系统负担,或自动增加线程进行负载均衡,提高了性能。能。能。


技术研发人员:郑鲁腾 王自川
受保护的技术使用者:北京融为科技有限公司
技术研发日:2023.08.18
技术公布日:2023/9/16
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐