CN105930217A - 一种线程优化系统及方法 - Google Patents
一种线程优化系统及方法 Download PDFInfo
- Publication number
- CN105930217A CN105930217A CN201610237415.XA CN201610237415A CN105930217A CN 105930217 A CN105930217 A CN 105930217A CN 201610237415 A CN201610237415 A CN 201610237415A CN 105930217 A CN105930217 A CN 105930217A
- Authority
- CN
- China
- Prior art keywords
- thread
- memory space
- allocated
- value
- less
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及计算机领域,尤其涉及一种线程优化系统及方法。本发明通过将当前被调出的第一线程中浪费的存储空间减小,节省了第一线程占用的存储空间,当前被调入的第二线程存储空间不足时,增加第二线程的存储空间,提高了线程的执行效率,提高了存储空间的利用率,避免了存储空间的浪费。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种线程优化系统及方法。
背景技术
现有技术中,为了执行线程通常会为该线程预分配一定的存储空间,现有的分配方法是对所有的线程采用同一的分配标准,并且线程的存储空间的申请没有被限制,有一些线程由于函数的嵌套较多,会占用较大的存储空间,但是有一些线程的存储空间内有大量的未被使用的部分,这就会造成存储空间的浪费,其他准备执行的线程由于存储空间的浪费导致存储空间的不足,使其执行过程因存储空间不足而被打断。
发明内容
针对现有技术存在的问题,现提供一种线程优化系统及方法,能够减小存储空间的浪费,提高存储空间的利用率。
具体的技术方案如下:
一种线程优化系统,应用于嵌入式系统中,所述线程优化系统包括:
调度模块3,用以于一处理器上调出当前执行的一第一线程,以及向所述处理器调入需要执行的一第二线程;
判断模块1,与所述调度模块3连接,用以判断所述第一线程被调出后的实际占用的存储空间是否小于所述第一线程被分配的存储空间,以及判断所述第二线程被调入前的被分配的存储空间与所述第二线程被实际占用的存储空间的差是否小于一第一值;
调整模块2,与所述判断模块1连接,用以于所述第一线程的所述实际占用的存储空间小于所述第一线程的所述被分配的存储空间时,减小所述第一线程的所述被分配的存储空间至一第二值,以及于所述第二线程的所述被分配的存储空间与所述第二线程的所述实际占用的存储空间的差小于所述第一值时增大所述第二线程的所述被分配的存储空间。
优选的,所述存储空间为堆栈。
优选的,还包括
回收模块4,所述回收模块4与所述调整模块3连接,用以于所述调整模块3减小所述第一线程的所述被分配的存储空间时,回收所述第一线程的所述被分配的存储空间被减小的部分。
优选的,第二值大于等于所述第一线程被调出后的实际占用的存储空间;或者
所述第二值为4千字节。
优选的,所述第一值为8千字节。
一种线程优化方法,包括:
步骤S1,于一处理器上调出当前执行的一第一线程,以及向所述处理器调入需要执行的一第二线程;
步骤S2,判断所述第一线程被调出后的实际占用的存储空间是否小于所述第一线程被分配的存储空间,以及判断所述第二线程被调入前的被分配的存储空间与所述第二线程被实际占用的存储空间的差是否小于一第一值;
步骤S3,于所述第一线程的所述实际占用的存储空间小于所述第一线程的所述被分配的存储空间时,减小所述第一线程的所述被分配的存储空间至一第二值,以及于所述第二线程的所述被分配的存储空间与所述第二线程的所述实际占用的存储空间的差小于所述第一值时增大所述第二线程的所述被分配的存储空间。
优选的,所述存储空间为堆栈。
优选的,所述步骤S3具体包括:
步骤S31,于减小所述第一线程的所述被分配的存储空间时,回收所述第一线程的所述被分配的存储空间被减小的部分。
优选的,第二值大于等于所述第一线程被调出后的实际占用的存储空间;或者
所述第二值为4千字节。
优选的,所述第一线程的所述被分配的存储空间与所述第二值的差值为8千字节。
上述技术方案的有益效果是:
上述技术方案通过将当前被调出的第一线程中浪费的存储空间减小,节省了第一线程占用的存储空间,当前被调入的第二线程存储空间不足时,增加第二线程的存储空间,提高了线程的执行效率,提高了存储空间的利用率,避免了存储空间的浪费。
附图说明
图1-图2为本发明一种线程优化系统的实施例的结构示意图;
图3为本发明一种线程优化方法的实施例的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,下述技术方案,技术特征之间可以相互组合。
下面结合附图对本发明的具体实施方式作进一步的说明:
本实施例提供了一种线程优化系统,应用于嵌入式系统中,如图1所示,线程优化系统包括:
调度模块3,用以于一处理器上调出当前执行的一第一线程,以及向处理器调入需要执行的一第二线程;
判断模块1,与调度模块3连接,用以判断第一线程被调出后的实际占用的存储空间是否小于第一线程被分配的存储空间,以及判断第二线程被调入前的被分配的存储空间与第二线程被实际占用的存储空间的差是否小于一第一值;
调整模块2,与判断模块1连接,用以于第一线程的实际占用的存储空间小于第一线程的被分配的存储空间时,减小第一线程的被分配的存储空间至一第二值,以及于第二线程的被分配的存储空间与第二线程的实际占用的存储空间小于第一值时增大第二线程的被分配的存储空间。
本实施例中每个线程可以有对应的存储空间,其中被调出的第一线程的实际占用的存储空间小于第一线程被分配的存储空间时,说明第一线程的实际占用的存储空间并未占满第一线程被分配的存储空间,存在存储空间浪费现象,调度模块2通过调整第一线程被分配的存储空间头部或者尾部的指针将浪费的存储空间释放。
本实施例中,调度模块3对被调入的第二线程进行调度,使得第二线程的执行时能够获得足够的存储空间,避免第二进程的执行过程被打断。
本发明一个较佳的实施例中,存储空间为堆栈。
当存储空间为堆栈时,判断模块1可通过调用栈空间调度函数检查第一线程的栈空间和第二线程的栈空间,以判断第一线程被调出后的实际占用的栈空间是否小于第一线程被分配的栈空间,以及第二线程被调入前的被分配的存储空间与判断第二线程的实际占用的栈空间是否小于一第一值。
本发明一个较佳的实施例中,如图2所示,还包括
回收模块4,回收模块4与调整模块3连接,用以于调整模块3减小第一线程的被分配的存储空间时,回收第一线程的被分配的存储空间被减小的部分。
进一步的,当存储空间为堆栈时,回收模块4通过调用栈回收函数回收第一线程的被分配的栈空间被减小的部分。
本发明一个较佳的实施例中,第二值大于等于第一线程被调出后的实际占用的存储空间。
本发明一个较佳的实施例中,第二值为4千字节。
本发明一个较佳的实施例中,第一值为8千字节。
本实施例提供了一种线程优化方法,如图3所示,包括:
步骤S1,于一处理器上调出当前执行的一第一线程,以及向处理器调入需要执行的一第二线程;
步骤S2,判断第一线程被调出后的实际占用的存储空间是否小于第一线程被分配的存储空间,以及判断第二线程被调入前的被分配的存储空间与第二线程被实际占用的存储空间的差是否小于一第一值;
步骤S3,于第一线程的实际占用的存储空间小于第一线程的被分配的存储空间时,减小第一线程的被分配的存储空间至一第二值,以及于第二线程的被分配的存储空间与第二线程的实际占用的存储空间的差小于第一值时增大第二线程的被分配的存储空间。
本发明一个较佳的实施例中,存储空间为堆栈。例如,本实施例中的存储空间可以为栈空间。
本发明一个较佳的实施例中,步骤S3具体包括:
步骤S31,于减小第一线程的被分配的存储空间时,回收第一线程的被分配的存储空间被减小的部分。
本发明一个较佳的实施例中,第二值大于等于第一线程被调出后的实际占用的存储空间。
本发明一个较佳的实施例中第二值为4千字节。
本发明一个较佳的实施例中,第一值为8千字节。
综合上述实施例,现对上述实施例提供的线程优化方法的伪代码进行举例说明:
from_stack->vm_start是第一线程栈空间的结束位置,这两个指针之间的栈空间空隙就是被浪费的栈内存,为了保证线程执行切换的速度,可以预留4K的栈空间给每一个线程,将其余的栈空间回收,这4K的栈空间即可以为第二值。
本实施例中,增加栈空间的伪代码为:
本实施例中栈回收函数的伪代码为:
综上,上述技术方案通过将当前被调出的第一线程中浪费的存储空间减小,节省了第一线程占用的存储空间,当前被调入的第二线程存储空间不足时,增加第二线程的存储空间,提高了线程的执行效率,提高了存储空间的利用率,避免了存储空间的浪费。
通过说明和附图,给出了具体实施方式的特定结构的典型实施例,基于本发明精神,还可作其他的转换。尽管上述发明提出了现有的较佳实施例,然而,这些内容并不作为局限。
对于本领域的技术人员而言,阅读上述说明后,各种变化和修正无疑将显而易见。因此,所附的权利要求书应看作是涵盖本发明的真实意图和范围的全部变化和修正。在权利要求书范围内任何和所有等价的范围与内容,都应认为仍属本发明的意图和范围内。
Claims (10)
1.一种线程优化系统,其特征在于,应用于嵌入式系统中,所述线程优化系统包括:
调度模块(3),用以于一处理器上调出当前执行的一第一线程,以及向所述处理器调入需要执行的一第二线程;
判断模块(1),与所述调度模块(3)连接,用以判断所述第一线程被调出后的实际占用的存储空间是否小于所述第一线程被分配的存储空间,以及判断所述第二线程被调入前的被分配的存储空间与所述第二线程被实际占用的存储空间的差是否小于一第一值;
调整模块(2),与所述判断模块(1)连接,用以于所述第一线程的所述实际占用的存储空间小于所述第一线程的所述被分配的存储空间时,减小所述第一线程的所述被分配的存储空间至一第二值,以及于所述第二线程的所述被分配的存储空间与所述第二线程的所述实际占用的存储空间的差小于所述第一值时增大所述第二线程的所述被分配的存储空间。
2.根据权利要求1所述的线程优化系统,其特征在于,所述存储空间为堆栈。
3.根据权利要求1所述的线程优化系统,其特征在于,还包括
回收模块(4),所述回收模块(4)与所述调整模块(3)连接,用以于所述调整模块(3)减小所述第一线程的所述被分配的存储空间时,回收所述第一线程的所述被分配的存储空间被减小的部分。
4.根据权利要求1所述的线程优化系统,其特征在于,第二值大于等于所述第一线程被调出后的实际占用的存储空间;或者
所述第二值为4千字节。
5.根据权利要求1所述的线程优化系统,其特征在于,所述第一值为8千字节。
6.一种线程优化方法,其特征在于,包括:
步骤S1,于一处理器上调出当前执行的一第一线程,以及向所述处理器调入需要执行的一第二线程;
步骤S2,判断所述第一线程被调出后的实际占用的存储空间是否小于所述第一线程被分配的存储空间,以及判断所述第二线程被调入前的被分配的存储空间与所述第二线程被实际占用的存储空间的差是否小于一第一值;
步骤S3,于所述第一线程的所述实际占用的存储空间小于所述第一线程的所述被分配的存储空间时,减小所述第一线程的所述被分配的存储空间至一第二值,以及于所述第二线程的所述被分配的存储空间与所述第二线程的所述实际占用的存储空间的差小于所述第一值时增大所述第二线程的所述被分配的存储空间。
7.根据权利要求6所述的线程优化方法,其特征在于,所述存储空间为堆栈。
8.根据权利要求6所述的线程优化方法,其特征在于,所述步骤S3具体包括:
步骤S31,于减小所述第一线程的所述被分配的存储空间时,回收所述第一线程的所述被分配的存储空间被减小的部分。
9.根据权利要求6所述的线程优化方法,其特征在于,第二值大于等于所述第一线程被调出后的实际占用的存储空间;或者
所述第二值为4千字节。
10.根据权利要求6所述的线程优化方法,其特征在于,所述第一值为8千字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610237415.XA CN105930217A (zh) | 2016-04-15 | 2016-04-15 | 一种线程优化系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610237415.XA CN105930217A (zh) | 2016-04-15 | 2016-04-15 | 一种线程优化系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105930217A true CN105930217A (zh) | 2016-09-07 |
Family
ID=56839088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610237415.XA Pending CN105930217A (zh) | 2016-04-15 | 2016-04-15 | 一种线程优化系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105930217A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776354A (zh) * | 2016-11-11 | 2017-05-31 | 深圳创维数字技术有限公司 | 一种动态堆栈内存管理方法和装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373445A (zh) * | 2008-09-09 | 2009-02-25 | 创新科存储技术(深圳)有限公司 | 一种内存调度方法及装置 |
CN103488577A (zh) * | 2013-09-22 | 2014-01-01 | 北京航空航天大学 | 一种基于用途编号的用户程序内存分配及批量回收的方法及装置 |
CN103955401A (zh) * | 2014-04-29 | 2014-07-30 | 南京新模式软件集成有限公司 | 一种电子文档在线预览优化的方法 |
CN104317703A (zh) * | 2014-09-30 | 2015-01-28 | 大唐移动通信设备有限公司 | 一种线程堆栈监测方法和装置 |
CN105224470A (zh) * | 2015-09-30 | 2016-01-06 | 汉柏科技有限公司 | 一种基于精简配置的存储空间分配方法及装置 |
CN105354079A (zh) * | 2015-09-29 | 2016-02-24 | 上海斐讯数据通信技术有限公司 | 提高系统内存利用率的方法 |
CN105389210A (zh) * | 2015-10-16 | 2016-03-09 | 浪潮(北京)电子信息产业有限公司 | 一种存储空间管理方法及装置 |
US9311236B2 (en) * | 2012-11-20 | 2016-04-12 | International Business Machines Corporation | Out-of-memory avoidance in dynamic virtual machine memory adjustment |
-
2016
- 2016-04-15 CN CN201610237415.XA patent/CN105930217A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373445A (zh) * | 2008-09-09 | 2009-02-25 | 创新科存储技术(深圳)有限公司 | 一种内存调度方法及装置 |
US9311236B2 (en) * | 2012-11-20 | 2016-04-12 | International Business Machines Corporation | Out-of-memory avoidance in dynamic virtual machine memory adjustment |
CN103488577A (zh) * | 2013-09-22 | 2014-01-01 | 北京航空航天大学 | 一种基于用途编号的用户程序内存分配及批量回收的方法及装置 |
CN103955401A (zh) * | 2014-04-29 | 2014-07-30 | 南京新模式软件集成有限公司 | 一种电子文档在线预览优化的方法 |
CN104317703A (zh) * | 2014-09-30 | 2015-01-28 | 大唐移动通信设备有限公司 | 一种线程堆栈监测方法和装置 |
CN105354079A (zh) * | 2015-09-29 | 2016-02-24 | 上海斐讯数据通信技术有限公司 | 提高系统内存利用率的方法 |
CN105224470A (zh) * | 2015-09-30 | 2016-01-06 | 汉柏科技有限公司 | 一种基于精简配置的存储空间分配方法及装置 |
CN105389210A (zh) * | 2015-10-16 | 2016-03-09 | 浪潮(北京)电子信息产业有限公司 | 一种存储空间管理方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776354A (zh) * | 2016-11-11 | 2017-05-31 | 深圳创维数字技术有限公司 | 一种动态堆栈内存管理方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2011079748A1 (zh) | 链表的创建方法及系统、数据的查找方法及系统 | |
US11042477B2 (en) | Memory management using segregated free lists | |
US7571163B2 (en) | Method for sorting a data structure | |
CN104731799B (zh) | 内存数据库管理装置 | |
CN102385554B (zh) | 重复数据删除系统的优化方法 | |
CN104394096A (zh) | 一种基于多核处理器的报文处理方法及多核处理器 | |
CN103914265A (zh) | 集群细粒度内存管理方法 | |
WO2015051685A1 (zh) | 一种任务调度方法、装置及系统 | |
CN105718319B (zh) | 一种内存池版图解析方法和内存池装置 | |
CN103412884A (zh) | 一种异构存储介质下嵌入式数据库的管理方法 | |
CN100424699C (zh) | 一种属性可扩展的对象文件系统 | |
US20070294550A1 (en) | Memory Management With Defragmentation In A Computing Device | |
CN105095099A (zh) | 一种基于内存页位图变更的大内存页整合方法 | |
CN101286878A (zh) | 一种终端的内存池的管理方法 | |
US20130290667A1 (en) | Systems and methods for s-list partitioning | |
CN1687904A (zh) | 智能卡存储环境的控制方法 | |
CN102253893A (zh) | 一种内存扩展方法 | |
CN103455433A (zh) | 内存管理方法及系统 | |
CN103425435A (zh) | 磁盘存储方法及磁盘存储系统 | |
CN103488577A (zh) | 一种基于用途编号的用户程序内存分配及批量回收的方法及装置 | |
CN103198108A (zh) | 一种索引数据更新方法、检索服务器及系统 | |
CN106598736A (zh) | 一种内存池的内存块调用方法和释放方法及服务器 | |
CN108595259B (zh) | 一种基于全局管理的内存池管理方法 | |
CN105930217A (zh) | 一种线程优化系统及方法 | |
CN101739346B (zh) | 对安全控制模块内存进行集中控制的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160907 |