![一种自动驾驶系统文件读写方法、装置、设备和存储介质与流程](https://img.xjishu.com/img/zl/2023/3/7/921wh3y4b.jpg)
1.本技术涉及自动驾驶技术领域,尤其涉及一种自动驾驶系统文件读写方法、装置、设备和存储介质。
背景技术:2.自动驾驶系统在自动驾驶运行过程中,在许多模块中都需要进行文件读/写操作,即在整个自动驾驶系统运行的过程中,会发生大量的文件读/写操作,据统计,对于文件读写的吞吐量可以达到100+gb/h。由于自动驾驶系统是基于linux系统,因此在默认的情况下,所有的对于文件的读/写操作,系统都会对于文件的内容进行自动缓存,以方便下次再次读写同一文件时能够加快速度,而这种缓存是会消耗系统内存的。当自动驾驶系统的内存被消耗,现有内存水平较低时,自动驾驶系统会自动释放已经使用过的内存,以重新释放大量内存。而这一过程会造成自动驾驶系统的卡顿,严重时甚至会影响整个自动驾驶系统的运行,卡顿整个自动驾驶系统,以至于发生不可预知的结果。
技术实现要素:3.本技术提供了一种自动驾驶系统文件读写方法、装置、设备和存储介质,用于改善现有的自动驾驶系统文件的读/写操作消耗大量系统内存,造成自动驾驶系统的卡顿,严重时甚至会影响整个自动驾驶系统的运行的技术问题。
4.有鉴于此,本技术第一方面提供了一种自动驾驶系统文件读写方法,包括:
5.配置文件读写接口,并将自动驾驶系统的各模块与所述文件读写接口进行适配;
6.在各模块进行写操作时,通过所述文件读写接口将用户空间中对应的自动驾驶系统文件直接写入到磁盘中;
7.在各模块进行读操作时,通过所述文件读写接口直接从磁盘中读取对应的自动驾驶系统文件到用户空间中。
8.可选的,所述在各模块进行写操作时,通过所述文件读写接口将用户空间中对应的自动驾驶系统文件直接写入到磁盘中,包括:
9.在各模块进行写操作时,通过所述文件读写接口从用户空间中获取写操作对应的自动驾驶系统文件,所述自动驾驶系统文件的缓存起始地址是磁盘的块大小的整数倍;
10.通过所述文件读写接口判断写操作对应的自动驾驶系统文件的数据大小是否为磁盘的块大小的整数倍,若是,则将该自动驾驶系统文件直接写入到磁盘中,若否,则合并多次写操作对应的自动驾驶系统文件,并根据磁盘的块大小对合并后的自动驾驶系统文件进行划分,将划分后的子自动驾驶系统文件直接写入到磁盘中。
11.可选的,所述在各模块进行读操作时,通过所述文件读写接口直接从磁盘中读取对应的自动驾驶系统文件到用户空间中,包括:
12.在各模块进行读操作时,通过所述文件读写接口直接从磁盘中读取读操作对应的自动驾驶系统文件,所述自动驾驶系统文件的缓存起始地址是磁盘的块大小的整数倍;
13.通过所述文件读写接口判断读操作对应的自动驾驶系统文件的数据大小是否为磁盘的块大小的整数倍,若是,则将该自动驾驶系统文件直接缓存到用户空间中,若否,则合并多次读操作对应的自动驾驶系统文件,并根据磁盘的块大小对合并后的自动驾驶系统文件进行划分,将划分后的子自动驾驶系统文件直接缓存到用户空间中。
14.可选的,所述方法还包括:
15.记录自动驾驶系统的各个模块在读/写操作时的操作数据量,并根据各模块的操作数据量计算各模块当前的吞吐速度;
16.判断各模块当前的吞吐速度是否超过对应的读写速度阈值,若是,则暂停超过读写速度阈值的模块的读/写操作,等待预置时间段后再重新启动该模块的读/写操作。
17.可选的,所述方法还包括:
18.根据各模块的读/写操作的重要性以及不同的磁盘硬件信息配置各模块在不同磁盘硬件信息下的读写速度阈值,并将各模块在不同磁盘硬件信息下的读写速度阈值存储在自动驾驶系统的读写速度配置文件中。
19.可选的,所述判断各模块当前的吞吐速度是否超过对应的读写速度阈值,之前还包括:
20.根据各模块的模块信息以及自动驾驶系统当前的磁盘硬件信息从所述读写速度配置文件中读取各模块对应的读写速度阈值。
21.本技术第二方面提供了一种自动驾驶系统文件读写装置,包括:
22.配置单元,用于配置文件读写接口,并将自动驾驶系统的各模块与所述文件读写接口进行适配;
23.所述文件读写接口,用于在各模块进行写操作时,将用户空间中对应的自动驾驶系统文件直接写入到磁盘中;在各模块进行读操作时,直接从磁盘中读取对应的自动驾驶系统文件到用户空间中。
24.可选的,所述装置还包括:读写速度控制单元,用于:
25.记录自动驾驶系统的各个模块在读/写操作时的操作数据量,并根据各模块的所述操作数据量计算各模块当前的吞吐速度;
26.判断各模块当前的吞吐速度是否超过对应的读写速度阈值,若是,则暂停超过读写速度阈值的模块的读/写操作,等待预置时间段后再重新启动该模块的读/写操作。
27.本技术第三方面提供了一种自动驾驶系统文件读写设备,所述设备包括处理器以及存储器;
28.所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
29.所述处理器用于根据所述程序代码中的指令执行第一方面任一种所述的自动驾驶系统文件读写方法。
30.本技术第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码被处理器执行时实现第一方面任一种所述的自动驾驶系统文件读写方法。
31.从以上技术方案可以看出,本技术具有以下优点:
32.本技术提供了一种自动驾驶系统文件读写方法,包括:配置文件读写接口,并将自动驾驶系统的各模块与文件读写接口进行适配;在各模块进行写操作时,通过文件读写接
口将用户空间中对应的自动驾驶系统文件直接写入到磁盘中;在各模块进行读操作时,通过文件读写接口直接从磁盘中读取对应的自动驾驶系统文件到用户空间中。
33.本技术中,将自动驾驶系统的各模块与文件读写接口进行适配,以便各模块可以通过文件读写接口进行文件读/写操作,本技术中的文件读写接口在进行读写数据时,可以绕过自动驾驶系统的页面缓存,将磁盘中的自动驾驶文件与用户空间中的自动驾驶系统文件直接进行交互,节省了内存缓存这一过程,使得各个模块的文件读/写操作不用消耗系统内存;同时由于少了系统内存的缓存操作,整个文件的读写速度会更快,有助于提升自动驾驶系统文件读写的性能,从而改善了现有的自动驾驶系统文件的读/写操作消耗大量系统内存,造成自动驾驶系统的卡顿,严重时甚至会影响整个自动驾驶系统的运行的技术问题。
附图说明
34.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
35.图1为本技术实施例提供的一种自动驾驶系统文件读写方法的一个流程示意图;
36.图2为本技术实施例提供的一种自动驾驶系统文件读写方法的另一个流程示意图;
37.图3为本技术实施例提供的一种自动驾驶系统文件读写装置的一个结构示意图。
具体实施方式
38.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
39.为了便于理解,请参阅图1,本技术实施例提供了一种自动驾驶系统文件读写方法,包括:
40.步骤101、配置文件读写接口,并将自动驾驶系统的各模块与文件读写接口进行适配。
41.自动驾驶系统在自动驾驶运行的过程中,在许多模块中都需要进行文件读/写操作。为了避免各模块在进行文件读/写操作时再消耗系统内存,本技术实施例对自动驾驶系统的文件读/写操作进行改进,本技术实施例提供统一的文件读写接口,并配置文件读写接口采用直接i/o操作,文件读写接口采用直接i/o来读写自动驾驶系统文件,可以绕过自动驾驶系统的页面缓存(page cache),使得磁盘中的自动驾驶文件与用户空间中的自动驾驶文件进行直接交互,使得各个模块的文件读/写操作能够不用消耗系统内存,从而消灭不必要的文件读写缓存,使得系统内存不会被大量消耗。
42.在配置好文件读写接口后,需要将自动驾驶系统的各模块与该文件读写接口进行适配。具体的,自动驾驶系统中的文件读/写操作包括读取地图、压缩日志文件、记录车上数据信息等。自动驾驶系统需要地图的辅助以获取更多的信息,地图包括语义地图与高精地
图。而这些地图是以proto的文件形式存储在自动驾驶车辆上,需要地图时通过protobuf(一种结构化数据定义标准协议)来读取地图,为了使得protobuf能够适配文件读写接口,本技术实施例采用了能连接protobuf和文件读写接口的中间层接口。
43.自动驾驶系统需要随时记录自动驾驶车辆上的各种数据信息,以方便后续对车辆状态进行分析。由于自动驾驶车辆存在大量的模块,这一操作需要巨大的文件读写吞吐量,也因此在默认状态下会消耗大量的系统内存,容易导致自动驾驶系统卡顿。自动驾驶车辆上的数据通过riegeli(一种google的顺序压缩存储格式)进行存储。为了使得riegeli能够适配文件读写接口,本技术实施例采用了能连接riegeli和文件读写接口的中间层接口。
44.自动驾驶车辆上的各个模块会产生大量的表示软件运行状态的日志文件,这些日志文件需要在自动驾驶车辆上进行压缩操作,以节省网络存储空间。这些压缩操作既包括了对于待压缩文件的读取,也包括了压缩完毕后的文件的落盘。自动驾驶车辆上的日志文件通过intel qat芯片进行压缩,为了使得qat(针对加/解密任务以及压缩/解压缩任务的一款专用加速硬件)能够适配文件读写接口,本技术实施例也采用了能连接qat和文件读写接口的中间层接口。
45.步骤102、在各模块进行写操作时,通过文件读写接口将用户空间中对应的自动驾驶系统文件直接写入到磁盘中。
46.在各模块进行写操作时,通过文件读写接口从用户空间中获取写操作对应的自动驾驶系统文件,自动驾驶系统文件的缓存起始地址是磁盘的块大小的整数倍;
47.通过文件读写接口判断写操作对应的自动驾驶系统文件的数据大小是否为磁盘的块大小的整数倍,若是,则将该自动驾驶系统文件直接写入到磁盘中,若否,则合并多次写操作对应的自动驾驶系统文件,并根据磁盘的块大小对合并后的自动驾驶系统文件进行划分,将划分后的子自动驾驶系统文件直接写入到磁盘中。
48.步骤103、在各模块进行读操作时,通过文件读写接口直接从磁盘中读取对应的自动驾驶系统文件到用户空间中。
49.在各模块进行读操作时,通过文件读写接口直接从磁盘中读取读操作对应的自动驾驶系统文件,自动驾驶系统文件的缓存起始地址是磁盘的块大小的整数倍;
50.通过文件读写接口判断读操作对应的自动驾驶系统文件的数据大小是否为磁盘的块大小的整数倍,若是,则将该自动驾驶系统文件直接缓存到用户空间中,若否,则合并多次读操作对应的自动驾驶系统文件,并根据磁盘的块大小对合并后的自动驾驶系统文件进行划分,将划分后的子自动驾驶系统文件直接缓存到用户空间中。
51.本技术实施例中,在各模块进行读/写操作时,通过文件读写接口采用直接i/o操作将磁盘中的自动驾驶系统文件与用户空间中的自动驾驶系统文件进行直接交互。需要说明的是,对于磁盘来说,是对一个块一个块来进行操作,因此每次读/写操作的数据大小要满足是磁盘的块大小的整数倍,每次读/写操作的数据的缓存起始地址需要是块大小的整数倍。而文件读写接口会自动提供满足条件的数据,并调整每次读/写操作的数据数量。如果每次读/写操作的数据大小并不能恰好等于磁盘的块大小的整数倍,文件读写接口会合并几次读/写操作的数据,并重新划分,使得每次读/写操作的数据能够满足要求;最后,读写接口会将用户空间中缓存的自动驾驶系统文件与磁盘中的自动驾驶系统文件直接进行交互操作,从而绕过自动驾驶系统层面的页面缓存,节省内存缓存。本技术实施例实现了一
种绕开系统缓存并且直接对于磁盘进行操作的读写方法,从而使得自动驾驶车辆上所有的文件操作不用通过系统缓存;同时由于减少了系统缓存,使得文件的读写操作速度更快,提升了性能。
52.本技术实施例中,将自动驾驶系统的各模块与文件读写接口进行适配,以便各模块可以通过文件读写接口进行文件读/写操作,本技术中的文件读写接口在进行读写数据时,可以绕过自动驾驶系统的页面缓存,将磁盘中的自动驾驶文件与用户空间中的自动驾驶系统文件直接进行交互,节省了内存缓存这一过程,使得各个模块的文件读/写操作不用消耗系统内存;同时由于少了系统内存的缓存操作,整个文件的读写速度会更快,有助于提升自动驾驶系统文件读写的性能,从而改善了现有的自动驾驶系统文件的读/写操作消耗大量系统内存,造成自动驾驶系统的卡顿,严重时甚至会影响整个自动驾驶系统的运行的技术问题。
53.以上为本技术提供的一种自动驾驶系统文件读写方法的一个实施例,以下为本技术提供的一种自动驾驶系统文件读写方法的另一个实施例。
54.本技术实施例还考虑到,大量的读/写操作会对硬盘造成一定的压力,进而导致系统出现问题。为了改善该问题,请参考图2,本技术实施例提供的另一种自动驾驶系统文件读写方法,本技术实施例进一步调控各个文件读/写操作的速度,从而使得各个重要程度不同的文件的读/写操作的效率性能最大化的同时,在整体上不会对系统造成负担。其中,方法包括:
55.步骤201、配置文件读写接口,并将自动驾驶系统的各模块与文件读写接口进行适配。
56.本技术实施例中步骤201的具体内容与前述步骤101中的具体内容一致,在此不再进行赘述。
57.步骤202、根据各模块的读/写操作的重要性以及不同的磁盘硬件信息配置各模块在不同磁盘硬件信息下的读写速度阈值,并将各模块在不同磁盘硬件信息下的读写速度阈值存储在自动驾驶系统的读写速度配置文件中。
58.自动驾驶系统系统对于文件读/写操作的巨大吞吐速度,可能会对磁盘操作产生巨大的压力。因此,需要控制整个自动驾驶系统的读/写操作速度。同时,因为各个模块的读/写操作的重要性有所不同,需要对每个模块的速度进行区分。比如,对于地图的读操作,因为自动驾驶需要高精度地图以及语义地图的辅助,而在自动驾驶车辆高速行进的过程中,对于当前地段地图的加载的实时性要求非常高,所以对于地图的读取这一操作需要配置最高权限,满足其最高的读写速度。又比如,对于数据的记录,由于自动驾驶系统每时每刻产生大量的数据,如果写盘的速度较慢,则可能会导致数据的丢失,因此这一模块的读写速度也应该较快,以满足全部数据的记录。而对于日志文件的压缩,因为这一操作对于速度的要求并不敏感,所以并不需要较快的读写速度。对于各个模块的吞吐量的控制以及他们整合而成的整个系统的吞吐量,使得整个系统的性能和效率能够最大化的情况下,不回因为读/写操作的吞吐造成磁盘问题。配置读写速度时,不仅跟各个模块有关,同时也跟当前自动驾驶车辆的硬盘有关,可以根据不同模块的模块信息以及不同的磁盘硬件信息进行大量的仿真实验来确定各模块在不同磁盘硬件信息下的读写速度阈值,然后将其存储在自动驾驶系统的读写速度配置文件中,以便在自动驾驶系统启动后,可以根据各个模块以及自
动驾驶车辆具体的磁盘硬件信息从读写速度配置文件中读取对应的读写速度阈值。
59.步骤203、在各模块进行写操作时,通过文件读写接口将用户空间中对应的自动驾驶系统文件直接写入到磁盘中。
60.步骤204、在各模块进行读操作时,通过文件读写接口直接从磁盘中读取对应的自动驾驶系统文件到用户空间中。
61.本技术实施例中的步骤203、步骤204的具体内容与前述步骤102、步骤103的具体内容一致,在此不再进行赘述。
62.步骤205、记录自动驾驶系统的各个模块在读/写操作时的操作数据量,并根据各模块的操作数据量计算各模块当前的吞吐速度。
63.在各个模块进行读/写操作时,可以通过文件读写接口记录各个模块当前的操作数据量,然后根据操作数据量和时间计算各模块在当前的吞吐速度。
64.步骤206、根据各模块的模块信息以及自动驾驶系统当前的磁盘硬件信息从读写速度配置文件中读取各模块对应的读写速度阈值。
65.步骤207、判断各模块当前的吞吐速度是否超过对应的读写速度阈值,若是,则暂停超过读写速度阈值的模块的读/写操作,等待预置时间段后再重新启动该模块的读/写操作。
66.可以根据各模块的模块信息以及当前的磁盘硬件信息从读写速度配置文件中读取各模块对应的读写速度阈值,然后比较各模块当前的吞吐速度和对应的读写速度阈值,判断各模块当前的吞吐速度是否超过对应的读写速度阈值,若是,则暂停超过读写速度阈值的模块的读/写操作,等待预置时间段后再重新启动该模块的读/写操作。
67.本技术实施例中,将自动驾驶系统的各模块与文件读写接口进行适配,以便各模块可以通过文件读写接口进行文件读/写操作,本技术中的文件读写接口在进行读写数据时,可以绕过自动驾驶系统的页面缓存,将磁盘中的自动驾驶文件与用户空间中的自动驾驶系统文件直接进行交互,节省了内存缓存这一过程,使得各个模块的文件读/写操作不用消耗系统内存;同时由于少了系统内存的缓存操作,整个文件的读写速度会更快,有助于提升自动驾驶系统文件读写的性能,从而改善了现有的自动驾驶系统文件的读/写操作消耗大量系统内存,造成自动驾驶系统的卡顿,严重时甚至会影响整个自动驾驶系统的运行的技术问题。
68.进一步,本技术实施例通过对不同模块、不同硬件进行不同读写速度限定,在达到各个模块效率性能最大化的同时,避免了因为吞吐量过大而造成的磁盘操作压力问题。
69.以上为本技术提供的一种自动驾驶系统文件读写方法的另一个实施例,以下为本技术提供的一种自动驾驶系统文件读写装置的一个实施例。
70.请参考图3,本技术实施例提供的一种自动驾驶系统文件读写装置,包括:
71.配置单元,用于配置文件读写接口,并将自动驾驶系统的各模块与文件读写接口进行适配;
72.文件读写接口,用于在各模块进行写操作时,将用户空间中对应的自动驾驶系统文件直接写入到磁盘中;在各模块进行读操作时,直接从磁盘中读取对应的自动驾驶系统文件到用户空间中。
73.作为进一步地改进,装置还包括:读写速度配置单元,用于:
74.根据各模块的读/写操作的重要性以及不同的磁盘硬件信息配置各模块在不同磁盘硬件信息下的读写速度阈值,并将各模块在不同磁盘硬件信息下的读写速度阈值存储在自动驾驶系统的读写速度配置文件中。
75.作为进一步地改进,装置还包括:读写速度控制单元,用于:
76.记录自动驾驶系统的各个模块在读/写操作时的操作数据量,并根据各模块的操作数据量计算各模块当前的吞吐速度;
77.判断各模块当前的吞吐速度是否超过对应的读写速度阈值,若是,则暂停超过读写速度阈值的模块的读/写操作,等待预置时间段后再重新启动该模块的读/写操作。
78.本技术实施例中,将自动驾驶系统的各模块与文件读写接口进行适配,以便各模块可以通过文件读写接口进行文件读/写操作,本技术中的文件读写接口在进行读写数据时,可以绕过自动驾驶系统的页面缓存,将磁盘中的自动驾驶文件与用户空间中的自动驾驶系统文件直接进行交互,节省了内存缓存这一过程,使得各个模块的文件读/写操作不用消耗系统内存;同时由于少了系统内存的缓存操作,整个文件的读写速度会更快,有助于提升自动驾驶系统文件读写的性能,从而改善了现有的自动驾驶系统文件的读/写操作消耗大量系统内存,造成自动驾驶系统的卡顿,严重时甚至会影响整个自动驾驶系统的运行的技术问题。
79.进一步,本技术实施例通过对不同模块、不同硬件进行不同读写速度限定,在达到各个模块效率性能最大化的同时,避免了因为吞吐量过大而造成的磁盘操作压力问题。
80.本技术实施例还提供了一种自动驾驶系统文件读写设备,设备包括处理器以及存储器;
81.存储器用于存储程序代码,并将程序代码传输给处理器;
82.处理器用于根据程序代码中的指令执行前述方法实施例中的自动驾驶系统文件读写方法。
83.本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储程序代码,程序代码被处理器执行时实现前述方法实施例中的自动驾驶系统文件读写方法。
84.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
85.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
86.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指
这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
87.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
88.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
89.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
90.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以通过一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-only memory,英文缩写:rom)、随机存取存储器(英文全称:randomaccess memory,英文缩写:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
91.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。