G06F9/50
1.一种内存分配方法,其特征在于,包括:确定运行进程所对应的CPU;在确定的所述 CPU所对应的本地内存中申请所述运行进程相对应的内存池;
还包括:
当所述运行进程申请内存时,从所述运行进程相对应的所述内存池中分配对应的内存 区域给所述运行进程。
2.根据权利要求1所述的内存分配方法,其特征在于,进一步包括:
当所述运行进程释放内存时,将所述运行进程分配的内存区域释放回所述运行进程相 对应的内存池中。
3.根据权利要求1所述的方法,其特征在于,
所述确定运行进程所对应的CPU,包括:
确定运行进程所需内存池的大小;
确定每一个待选择CPU所分别对应的本地内存的剩余空间;
根据每一个所述待选择CPU分别对应的本地内存的剩余空间,以及所述运行进程所需 内存池的大小,从所述至少一个待选择CPU中确定一个所述运行进程所对应的CPU。
4.根据权利要求1所述的方法,其特征在于,
在所述在确定的所述CPU所对应的本地内存中申请所述运行进程相对应的内存池之 后,在所述从所述运行进程相对应的所述内存池中分配对应的内存区域给所述运行进程之 前,进一步包括:
预先将确定的所述内存池划分为预设数量个内存区域;
则,所述当所述运行进程申请内存时,从所述运行进程相对应的所述内存池中分配对 应的内存区域给所述运行进程,包括:
当所述运行进程申请内存时,确定所述运行进程所需要申请的内存大小;
根据确定的内存大小,以及所述运行进程相对应的所述内存池中各个所述内存区域的 大小,从所述预设数量个内存区域中选择一个内存区域,将选择的所述内存区域分配给所 述运行进程。
5.根据权利要求1至4中任一所述的方法,其特征在于,还包括:
监测所述运行进程是否结束运行,在所述运行进程结束运行时,将所述运行进程相对 应的所述内存池释放回所述运行进程所对应的CPU的本地内存中。
6.一种内存分配装置,其特征在于,包括:
确定单元、申请单元、分配单元;其中,
所述确定单元,用于确定运行进程所对应的CPU;
所述申请单元,用于在确定单元确定的所述CPU所对应的本地内存中申请所述运行进 程相对应的内存池;
所述分配单元,用于当所述运行进程申请内存时,从所述申请单元申请的所述运行进 程相对应的所述内存池中分配对应的内存区域给所述运行进程。
7.根据权利要求6所述的内存分配装置,其特征在于,进一步包括:
释放单元,用于当所述运行进程释放内存时,将所述运行进程分配的内存区域释放回 所述运行进程相对应的内存池中。
8.根据权利要求6所述的内存分配装置,其特征在于,
所述确定单元,包括:内存池大小确定子单元、剩余空间确定子单元和CPU确定子单元; 其中,
内存池大小确定子单元,用于确定运行进程所需内存池的大小;
剩余空间确定子单元,用于确定每一个待选择CPU所分别对应的本地内存的剩余空间;
CPU确定子单元,用于根据每一个所述待选择CPU分别对应的本地内存的剩余空间,以 及所述运行进程所需内存池的大小,从所述至少一个待选择CPU中确定一个所述运行进程 所对应的CPU。
9.根据权利要求6所述的内存分配装置,其特征在于,进一步包括:
在所述在确定的所述CPU所对应的本地内存中申请所述运行进程相对应的内存池之 后,在所述从所述运行进程相对应的所述内存池中分配对应的内存区域给所述运行进程之 前,进一步包括:
划分单元,用于预先将所述申请单元申请的所述内存池划分为预设数量个内存区域;
所述分配单元,包括:
内存大小确定子单元,用于当所述运行进程申请内存时,确定所述运行进程所需要申 请的内存大小;
分配子单元,用于根据获取的内存大小,以及所述运行进程相对应的所述内存池中各 个所述内存区域的大小,从所述预设数量个内存区域中选择一个内存区域,将选择的所述 内存区域分配给所述运行进程。
10.根据权利要求6至9中任一所述的内存分配装置,其特征在于,进一步包括:
内存池处理单元,用于监测所述运行进程是否结束运行,在所述运行进程结束运行时, 将所述运行进程相对应的所述内存池释放回所述运行进程所对应的CPU的本地内存中。
本发明涉及计算机技术领域,特别涉及一种内存分配方法及装置。
内存是计算机的重要组件之一,计算机中所有程序的运行都是在内存中进行的, 因此计算机的性能严重依赖于内存性能的好坏。
目前,在Linux系统中,通常我们习惯于使用malloc等API(Application Programming Interface,应用程序编程接口)函数来申请及分配运行进程所需要的内存。
但是,频繁使用API函数会造成大量的内存碎片,同时,通过API函数申请分配内存 时还会存在跨CPU(Central Processing Unit,中央处理器)节点分配内存的情况,因此,通 过上述技术方案分配运行进程所需要的内存时,会影响内存的访问速度。
本发明实施例提供了一种内存分配的方法及装置,能够提高内存访问速度。
第一方面,本发明实施例提供了一种内存分配的方法,包括:
确定运行进程所对应的CPU;
在确定的所述CPU所对应的本地内存中申请所述运行进程相对应的内存池;
当所述运行进程申请内存时,从所述运行进程相对应的所述内存池中分配对应的 内存区域给所述运行进程。
优选地,进一步包括:
当所述运行进程释放内存时,将所述运行进程分配的内存区域释放回所述运行进 程相对应的内存池中。
优选地,所述确定运行进程所对应的CPU,包括:
确定运行进程所需内存池的大小;
确定每一个待选择CPU所分别对应的本地内存的剩余空间;
根据每一个所述待选择CPU分别对应的本地内存的剩余空间,以及所述运行进程 所需内存池的大小,从所述至少一个待选择CPU中确定一个所述运行进程所对应的CPU。
优选地,在所述在确定的所述CPU所对应的本地内存中申请所述运行进程相对应 的内存池之后,在所述从所述运行进程相对应的所述内存池中分配对应的内存区域给所述 运行进程之前,进一步包括:
预先将确定的所述内存池划分为预设数量个内存区域;
则,所述当所述运行进程申请内存时,从所述运行进程相对应的所述内存池中分 配对应的内存区域给所述运行进程,包括:
当所述运行进程申请内存时,确定所述运行进程所需要申请的内存大小;
根据确定的内存大小,以及所述运行进程相对应的所述内存池中各个所述内存区 域的大小,从所述预设数量个内存区域中选择一个内存区域,将选择的所述内存区域分配 给所述运行进程。
优选地,还包括:
监测所述运行进程是否结束运行,在所述运行进程结束运行时,将所述运行进程 相对应的所述内存池释放回所述运行进程所对应的CPU的本地内存中。
第二方面,本发明实施例提供了一种内存分配装置,包括:
确定单元、申请单元、分配单元;其中,
所述确定单元,用于确定运行进程所对应的CPU;
所述申请单元,用于在确定的所述CPU所对应的本地内存中申请所述运行进程相 对应的内存池;
所述分配单元,用于当所述运行进程申请内存时,从所述申请单元申请的所述运 行进程相对应的所述内存池中分配对应的内存区域给所述运行进程。
优选地,进一步包括:
释放单元,用于当所述运行进程释放内存时,将所述运行进程分配的内存区域释 放回所述运行进程相对应的内存池中。
优选地,所述确定单元,包括:内存池大小确定子单元、剩余空间确定子单元和CPU 确定子单元;其中,
内存池大小确定子单元,用于确定运行进程所需内存池的大小;
剩余空间确定子单元,用于确定每一个待选择CPU所分别对应的本地内存的剩余 空间。
CPU确定子单元,用于根据每一个所述待选择CPU分别对应的本地内存的剩余空 间,以及所述运行进程所需内存池的大小,从所述至少一个待选择CPU中确定一个所述运行 进程所对应的CPU。
优选地,进一步包括:
划分单元,用于预先将所述申请单元申请的所述内存池划分为预设数量个内存区 域;
所述分配单元,包括:
内存大小确定子单元,用于当所述运行进程申请内存时,确定所述运行进程所需 要申请的内存大小;
分配子单元,用于根据获取的内存大小,以及所述运行进程相对应的所述内存池 中各个所述内存区域的大小,从所述预设数量个内存区域中选择一个内存区域,将选择的 所述内存区域分配给所述运行进程。
优选地,进一步包括:
内存池处理单元,用于监测所述运行进程是否结束运行,在所述运行进程结束运 行时,将所述运行进程相对应的所述内存池释放回所述运行进程所对应的CPU的本地内存 中。
本发明实施例提供了一种内存分配方法及装置,该方法通过预先给运行进程确定 一个CPU,便于在该CPU的本地内存中给运行进程申请相对应的内存池;当运行进程申请内 存时,从运行进程相对应的内存池中分配对应内存区域给运行进程;由于每个进程有确定 的CPU和相对应的内存池,从而避免了运行进程跨CPU节点申请内存的情况,且在同一内存 池中分配运行进程所需要的内存,也避免产生大量的内存碎片,从而利于提高内存访问速 度。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 这些附图获得其他的附图。
图1是本发明一实施例提供的一种内存分配方法流程图;
图2是本发明一实施例提供的另一种内存分配方法流程图;
图3是本发明一实施例提供的一种内存分配装置的结构示意图;
图4是本发明一实施例提供的另一种内存分配装置的结构示意图;
图5是本发明一实施例提供的又一种内存分配装置的结构示意图;
图6是本发明一实施例提供的再一种内存分配装置的结构示意图。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种内存分配方法,该方法可以包括以下步骤:
步骤101:确定运行进程所对应的CPU;
步骤102:在确定的所述CPU所对应的本地内存中申请所述运行进程相对应的内存 池;
步骤103:当所述运行进程申请内存时,从所述运行进程相对应的所述内存池中分 配对应的内存区域给所述运行进程。
本发明实施例提供了一种内存分配方法及装置,该方法通过预先给运行进程确定 一个CPU,便于在该CPU的本地内存中给运行进程申请相对应的内存池;当运行进程申请内 存时,从运行进程相对应的内存池中分配对应内存区域给运行进程;由于每个进程有确定 的CPU和相对应的内存池,从而避免了运行进程跨CPU节点申请内存的情况,且在同一内存 池中分配运行进程所需要的内存,也避免产生大量的内存碎片,从而利于提高内存访问速 度。
举例来说,运行进程F对应CPU2,在CPU2的本地内存中申请内存池f。在内存池f中 有内存区域A、内存区域B、内存区域C 3个内存区域且对应的内存大小分别为:0.7GB、 1.5GB、3GB,当运行进程F申请1.3GB的内存时,为了避免浪费内存,从内存池f中选择内存区 域应大于运行进程F所申请的内存且与运行进程F所申请的内存的大小之差最小,从而选择 内存区域B给运行进程F。
为了提高内存池的内存利用率,在本发明一实施例中,当所述运行进程释放内存 时,将所述运行进程分配的内存区域释放回所述运行进程相对应的内存池中。
本发明实施例中,当运行进程不再使用内存时,会将分配给运行进程的内存区域 释放回运行进程相对应的内存池中,便于该运行进程再次申请内存,从而提高了内存池的 内存利用率。
为了提高本地内存利用率,所述步骤101的具体实现方式可以包括:
确定运行进程所需内存池的大小;
确定每一个待选择CPU所分别对应的本地内存的剩余空间;
根据每一个所述待选择CPU分别对应的本地内存的剩余空间,以及所述运行进程 所需内存池的大小,从所述至少一个待选择CPU中确定一个所述运行进程所对应的CPU。
本发明实施例中,首先确定运行进程所需内存池的大小,再确定所有待选择CPU所 分别对应的本地内存的剩余空间,便于与运行进程所需要的内存池的大小进行对比。通过 将所有待选择CPU分别对应的本地内存的剩余空间逐个与运行进程所需内存池的大小对 比,为了提高本地内存利用率,从所有待选择CPU中确定一个CPU,所确定CPU的本地内存剩 余空间大于运行进程所需内存池的大小且与运行进程所需内存池的大小之差最小,从而避 免了浪费CPU的本地内存空间。
举例来说:确定运行进程F需要内存大小为2GB的内存池,又确定出待选择CPU1、 CPU2、CPU3所对应的本地内存剩余空间分别为:0.7GB、3GB、5GB。经过将2GB与0.7GB、3GB、 5GB逐个对比后,为了提高内存池的内存利用率,确定CPU2的本地内存剩余空间刚好符合运 行进程F所需内存池的大小。
为了避免浪费内存,本发明一实施例中,在所述在确定的所述CPU所对应的本地内 存中申请所述运行进程相对应的内存池之后,在所述从所述运行进程相对应的所述内存池 中分配对应的内存区域给所述运行进程之前,进一步包括:
预先将确定的所述内存池划分为预设数量个内存区域;
则,所述步骤103的具体实现方式可以包括:
当所述运行进程申请内存时,确定所述运行进程所需要申请的内存大小;
根据确定的内存大小,以及所述运行进程相对应的所述内存池中各个所述内存区 域的大小,从所述预设数量个内存区域中选择一个内存区域,将选择的所述内存区域分配 给所述运行进程。
本发明实施例中,在运行进程确定的CPU所对应的本地内存中申请运行进程对应 的内存池之后,在从运行进程相对应的内存池中分配对应的内存区域给运行进程之前,根 据内存池的大小将内存池划分为几个不同大小的内存区域。当运行进程申请内存时,先确 定需要申请的内存大小,便于从内存池的所有待选择内存区域中选择一个既大于运行进程 所申请的内存又与运行进程所申请的内存大小之差最小的内存区域,并将选择的内存区域 分配给运行进程,从而避免了大量内存碎片的产生。
举例来说:根据运行进程F相对应的内存池f内存大小为6GB,将内存池f划分为A、 B、C 3个内存区域分别对应的内存大小依次为1GB、2GB、3GB。当运行进程F向内存池f申请 1.5GB内存时,为了避免大量内存碎片的产生,内存池f会将内存区域B分配给运行进程F。
为了方便其他运行进程申请内存,本发明一实施例中,监测所述运行进程是否结 束运行,在所述运行进程结束运行时,将所述运行进程相对应的所述内存池释放回所述运 行进程所对应的CPU的本地内存中。
本发明实施例中,通过监测运行进程,可以及时得知运行进程是否已结束运行,当 监测到运行进程已经结束运行时,会将运行进程相对应的内存池释放回运行进程所对应的 CPU的本地内存中,从而避免了资源浪费。
举例来说:通过监控模块检测运行进程,当监测到运行进程F结束运行时,会将运 行进程F的内存池f通过内存释放接口释放回运行进程F对应的本地内存中。
为了更加清楚的说明本发明的技术方案及优点,下面以系统中包括CPU1、2、3,各 个CPU分别对应的本地内存依次为a、b、c,通过本发明的技术方案实现向运行进程F分配内 存为例,如图2所示,具体可以包括以下步骤:
步骤201:确定运行进程F所需内存池的大小。
在本发明实施例中,确定运行进程所需内存池的大小,便于与所有待选择CPU的本 地内存剩余空间对比。
举例来说,在Linux系统中,运行进程F创建时调用绑定CPUx并在CPUx的本地内存z 中分配内存池接口,通过内存池接口确定运行进程F所需内存池的大小为6GB。
步骤202,确定CPU 1对应的本地内存a的剩余空间,确定CPU 2对应的本地内存b的 剩余空间,确定CPU 3对应的本地内存c的剩余空间。
举例来说,通过内存池接口确定CPU1的本地内存a的剩余空间为3GB,CPU2的本地 内存b的剩余空间为6GB,CPU3的本地内存c的剩余空间为7GB。
步骤203,根据CPU1、CPU2、CPU3分别对应的本地内存的剩余空间,以及运行进程F 所需内存池的大小,从3个CPU中确定一个运行进程所对应的CPU。
举例来说,已知CPU1的本地内存a的剩余空间为3GB、CPU2的本地内存b的剩余空间 为6GB、CPU3的本地内存c的剩余空间为7GB,将3个CPU的本地内存的剩余空间分别与运行进 程F的所需内存池的大小为6GB进行对比,为了避免浪费内存,最后确定CPU2为运行进程F所 对应的CPU。
步骤204:在CPU2的本地内存b中申请运行进程F的内存池f。
举例来说,在NUMA架构下,通过内存池接口在CPU2的本地内存b中申请运行进程F 的内存池f。
步骤205:预先将内存池f划分为3个内存区域;
举例来说,根据内存池f的空间为6GB,将内存池f划分为内存区域f1、内存区域f2、 内存区域f3,且f1、f2、f3相对应内存区域的空间大小依次为:1GB、2GB、3GB。
步骤206:当运行进程F申请内存时,确定运行进程F所申请的内存大小。
举例来说,当运行进程F申请内存时,通过内存申请接口确认运行进程F需要申请 2GB的内存。
步骤207:根据确定的内存大小,以及内存池f所对应的f1、f2、f3三个内存区域相 对应的内存区域大小,从3个内存区域中选择一个内存区域,并将选择的内存区域分配给运 行进程F。
举例来说,运行进程F需要申请2GB的内存,内存池f所对应的f1、f2、f3三个内存区 域相对应的内存区域大小依次为1GB、2GB、3GB,通过将需要申请的内存大小和3个内存区域 的大小比对,将内存区域f2分配给运行进程F。
步骤208:当运行进程F释放内存时,将内存区域f2释放回内存池f中。
举例来说,当运行进程F释放内存时,通过内存释放接口将内存区域f2释放回内存 池f中。
步骤209:监测运行进程F是否结束运行,在运行进程F结束运行时,将运行进程F相 对应的内存池f释放回运行进程F所对应的CPU2的本地内存b中。
举例来说,通过检测模块监测运行进程,当运行进程F结束运行时,通过内存释放 接口内存池f释放回本地内存b中。
在本发明实施例中,首先确定运行进程所需内存池的大小和每个待选择CPU所分 别对应的本地内存的剩余空间,根据将运行进程所需内存池大小与每个待选择CPU分别对 应的本地内存的剩余空间逐个对比,可以快速确定一个CPU,并可以实现在该CPU的本地内 存中给运行进程申请一个内存池。在从运行进程相对应的内存池中分配对应的内存区域给 运行进程之前,先将内存池划分为预设数量个内存区域,当运行进程申请内存时,从预设数 量个内存区域中选择一个能满足运行进程需要申请的内存大小的内存区域并分配给运行 进程。当运行进程释放内存时,将分配给运行进程的内存能区域释放回运行进程对应的内 存池中,只有当运行进程结束运行时,才会将申请的内存池释放回本地内存中,便于其他进 程从该CPU的本地内存中申请内存池。
如图3所示,本发明一实施例提供了一种内存分配装置,包括:确定单元301、申请 单元302、分配单元303;其中,
确定单元301,用于确定运行进程所对应的CPU;
申请单元302,用于在确定单元确定的所述CPU所对应的本地内存中申请所述运行 进程相对应的内存池;
分配单元303,用于当所述运行进程申请内存时,从所述申请单元申请的所述运行 进程相对应的所述内存池中分配对应的内存区域给所述运行进程。
本发明实施例中,确定单元确定了运行进程所对应的CPU,通过申请单元在该CPU 的本地内存中申请内存池,当运行进程申请内存时,分配单元从内存池中分配内存区域给 运行进程,由于每个运行进程有固定的CPU和内存池,从而避免了运行进程跨CPU节点申请 内存的情况,且在同一内存池中分配内存,也避免了内存碎片,从而利于提高内存访问速 度。
基于图3所示的一种内存分配装置,本发明一实施例中,如图4所示,该装置中的所 述确定单元301包括:内存池大小确定子单元3011、剩余空间确定子单元3012和CPU确定子 单元3013;其中,
内存池大小确定子单元3011,用于确定运行进程所需内存池的大小;
剩余空间确定子单元3012,用于确定每一个待选择CPU所分别对应的本地内存的 剩余空间。
CPU确定子单元3013,用于根据每一个所述待选择CPU分别对应的本地内存的剩余 空间,以及所述运行进程所需内存池的大小,从所述至少一个待选择CPU中确定一个所述运 行进程所对应的CPU。
基于图4所示的一种内存分配装置,本发明一实施例中,如图5所示,在所述在确定 的所述CPU所对应的本地内存中申请所述运行进程相对应的内存池之后,在所述从所述运 行进程相对应的所述内存池中分配对应的内存区域给所述运行进程之前,该装置进一步包 括:
划分单元401:用于预先将所述申请单元申请的所述内存池划分为预设数量个内 存区域;
所述分配单元303,包括:
内存大小确定子单元3031,用于当所述运行进程申请内存时,确定所述运行进程 所需要申请的内存大小;
分配子单元3032,用于根据获取的内存大小,以及所述运行进程相对应的所述内 存池中各个所述内存区域的大小,从所述预设数量个内存区域中选择一个内存区域,将选 择的所述内存区域分配给所述运行进程。
基于图5所示的一种内存分配装置,本发明一实施例中,如图6所示,该装置进一步 包括:
内存池处理单元501,用于监测所述运行进程是否结束运行,在所述运行进程结束 运行时,将所述运行进程相对应的所述内存池释放回所述运行进程所对应的CPU的本地内 存中。
本发明各个实施例至少具有如下有益效果:
1、本发明一实施例中,预先确定运行进程所对应的CPU,并在该CPU的本地内存中 申请内存池,当运行进程申请内存时,从内存池中分配内存区域给运行进程,由于每个运行 进程有固定的CPU和内存池,从而避免了运行进程跨CPU节点申请内存的情况,且在同一内 存池中分配内存,也避免了内存碎片,从而利于提高内存访问速度。
2、本发明一实施例中,当运行进程不再使用内存时,会将分配给运行进程的内存 区域释放回运行进程相对应的内存池中,便于该运行进程再次申请内存,从而提高了内存 池的内存利用率。
3、本发明一实施例中,首先确定运行进程所需内存池的大小,再确定所有待选择 CPU所分别对应的本地内存的剩余空间,便于与运行进程所需要的内存池的大小进行对比。 通过将所有待选择CPU分别对应的本地内存的剩余空间逐个与运行进程所需内存池的大小 对比,从所有待选择CPU中确定一个CPU,所确定CPU的本地内存剩余空间大于运行进程所需 内存池的大小且与运行进程所需内存池的大小之差最小,从而避免了浪费CPU的本地内存 空间。
4、本发明一实施例中,在运行进程确定的CPU所对应的本地内存中申请运行进程 对应的内存池之后,在从运行进程相对应的内存池中分配对应的内存区域给运行进程之 前,根据内存池的大小将内存池划分为几个不同大小的内存区域。当运行进程申请内存时, 先确定需要申请的内存大小,便于从内存池的所有待选择内存区域中中选择一个既大于运 行进程所申请的内存又与运行进程所申请的内存大小之差最小的内存区域,并将选择的内 存区域分配给运行进程,从而避免了浪费内存。
5、本发明一实施例中,通过监测运行进程,可以及时得知运行进程是否已结束运 行,当监测到运行进程已经结束运行时,会将运行进程相对应的内存池释放回运行进程所 对应的CPU的本地内存中,从而避免了资源浪费。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体 或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在 任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非 排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素, 而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固 有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排 除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光 盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技 术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、 等同替换、改进等,均包含在本发明的保护范围内。
本文发布于:2023-04-14 15:06:21,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/86678.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |