CN108256017A - 一种用于数据存储的方法、装置及计算机设备 - Google Patents

一种用于数据存储的方法、装置及计算机设备 Download PDF

Info

Publication number
CN108256017A
CN108256017A CN201810015930.2A CN201810015930A CN108256017A CN 108256017 A CN108256017 A CN 108256017A CN 201810015930 A CN201810015930 A CN 201810015930A CN 108256017 A CN108256017 A CN 108256017A
Authority
CN
China
Prior art keywords
character string
data
method name
performance
performance sampled
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.)
Granted
Application number
CN201810015930.2A
Other languages
English (en)
Other versions
CN108256017B (zh
Inventor
胡耀文
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810015930.2A priority Critical patent/CN108256017B/zh
Publication of CN108256017A publication Critical patent/CN108256017A/zh
Application granted granted Critical
Publication of CN108256017B publication Critical patent/CN108256017B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种用于数据存储的方法、装置及计算机设备,所述方法应用在直播平台中,所述方法包括:获取同一应用程序的任意一份性能采样数据,所述性能采样数据包括:多种方法名称及对应的运行数据;将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表;当需要对同一个应用程序的多份性能采样数据进行存储时,获取每份性能数据的每种方法名称,从所述共享编码表中查询每种方法名称对应的字符串;分别将每份所述性能采样数据中的每种所述方法名称对应的字符串及每种所述方法名称对应的运行数据进行序列化,生成序列化字符串;将所述序列化字符串进行压缩,获取压缩结果,将所述压缩结果存储至数据库中。

Description

一种用于数据存储的方法、装置及计算机设备
技术领域
本发明属于网络运行技术领域,尤其涉及一种用于数据存储的方法、装置及计算机设备。
背景技术
在使用xhprof进行性能采样后,需要将采样数据存储到数据库中以待检索和分析。
性能采样数据是一个很大的数组,常规的压缩方法对其进行存储压缩后依然占用很大的储存空间,经常会导致存储空间不够。
发明内容
针对现有技术存在的问题,本发明实施例提供了一种用于数据存储的方法、装置及计算机设备,用于解决现有技术中对性能采样数据进行存储时,占用的存储空间大,经常导致存储空间不足,影响运行效率的技术问题。
本发明实施例提供一种用于数据存储的方法,应用在直播平台中,所述方法包括:
获取同一应用程序的任意一份性能采样数据,所述性能采样数据包括:多种方法名称及对应的运行数据;
将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表;
当需要对同一个应用程序的多份性能采样数据进行存储时,获取每份性能数据的每种方法名称,从所述共享编码表中查询每种方法名称对应的字符串;
分别将每份所述性能采样数据中的每种所述方法名称对应的字符串及每种所述方法名称对应的运行数据进行序列化,生成字符串序列;
将所述字符串序列进行压缩,获取压缩结果,将所述压缩结果存储至数据库中。
上述方案中,所述将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表,包括:
统计所述多份性能采样数据中任意一份性能采样数据中每种方法名称的数量;
为每种方法名称分配一个唯一的字符串;
将所述每种方法名称、所述每种方法名称的数量以及对应的字符串存储至预设的映射表中,所述映射表为共享编码表,所述对应的字符串是预设的。
上述方案中,所述字符串序列中,不同的字符串之间设置有分隔符。
上述方案中,所述运行数据包括:运行时间、运行次数、运行占用的内存及中央处理器(CPU,Central Processing Unit)使用率。
本发明还提供一种用于数据存储的装置,所述装置包括:
获取单元,用于获取同一应用程序的任意一份性能采样数据,所述性能采样数据包括:多种方法名称及对应的运行数据;
编码单元,用于将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表;
查询单元,用于当需要对同一个应用程序的多份性能采样数据进行存储时,获取每份性能数据的每种方法名称,从所述共享编码表中查询每种方法名称对应的字符串;
生成单元,用于分别将每份所述性能采样数据中的每种所述方法名称对应的字符串及每种所述方法名称对应的运行数据进行序列化,生成字符串序列;
压缩单元,用于将所述字符串序列进行压缩,获取压缩结果;
存储单元,用于将所述压缩结果存储至数据库中。
上述方案中,所述编码单元具体用于:
统计所述多份性能采样数据中任意一份性能采样数据中每种方法名称的数量;
为每种方法名称分配一个唯一的字符串;
将所述每种方法名称、所述每种方法名称的数量以及对应的字符串存储至预设的映射表中,所述映射表为共享编码表,所述对应的字符串是预设的。
上述方案中,在所述字符串序列中,不同的字符串之间设置有分隔符。
上述方案中,所述运行数据包括:运行时间、运行次数、运行占用的内存及CPU使用率。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时能够执行上述任一所述的方法。
本发明还提供一种用于数据存储的计算机设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中,
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如上述任一所述的方法。
本发明实施例提供了一种用于数据存储的方法、装置及计算机设备,所述方法应用在直播平台中,所述方法包括:获取同一应用程序的任意一份性能采样数据,所述性能采样数据包括:多种方法名称及对应的运行数据;将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表;当需要对同一个应用程序的多份性能采样数据进行存储时,获取每份性能数据的每种方法名称,从所述共享编码表中查询每种方法名称对应的字符串;分别将每份所述性能采样数据中的每种所述方法名称对应的字符串及每种所述方法名称对应的运行数据进行序列化,生成序列化字符串;将所述序列化字符串进行压缩,获取压缩结果,将所述压缩结果存储至数据库中;如此,由于同一应用程序的多份性能采样数据包含的方法名称具有一致性,因此可以只生成一个共享编码表,多份性能采样数据可以共用一个共享编码表,这样在存储时,减少了需要存储数据的大小,进而减少了存储空间,确保了运行效率。
附图说明
图1为本发明实施例一提供的用于数据存储的方法流程示意图;
图2为本发明实施例二提供的用于数据存储的装置结构示意图;
图3为本发明实施例三提供的用于数据存储的计算机设备整体结构示意图。
具体实施方式
为了解决现有技术中对性能采样数据进行存储时,占用的存储空间大,经常导致存储空间不足,影响运行效率的技术问题,本发明提供了一种用于数据存储的方法、装置及计算机设备,所述方法应用在直播平台中,所述方法包括:获取同一应用程序的任意一份性能采样数据,所述性能采样数据包括:多种方法名称及对应的运行数据;将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表;当需要对同一个应用程序的多份性能采样数据进行存储时,获取每份性能数据的每种方法名称,从所述共享编码表中查询每种方法名称对应的字符串;分别将每份所述性能采样数据中的每种所述方法名称对应的字符串及每种所述方法名称对应的运行数据进行序列化,生成序列化字符串;将所述序列化字符串进行压缩,获取压缩结果,将所述压缩结果存储至数据库中。
下面通过附图及具体实施例对本发明的技术方案做进一步的详细说明。
实施例一
本实施例提供一种用于数据存储的方法,所述方法应用在直播平台中,如图1所示,所述方法包括:
S110,获取同一应用程序的任意一份性能采样数据,所述性能采样数据包括:多种方法名称及对应的运行数据;
本步骤中需要获取到性能采样数据,所述性能采样数据包括多份,每份所述性能采样数据都包括多种方法名称及对应的运行数据。比如需要获取到用户名称,那么对应的方法名称就是username或userID;所述运行数据包括每种方法名称的运行时间、运行次数、运行占用的内存及CPU使用率等等。
S111,将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表;
这里,因对于同一个应用程序的进行采样时,无论采样多少次,方法名称的总数是固定的,每种方法名称在多份采样数据出现的频次也是差不多的,考虑到性能采样数据的特殊性,本步骤在将每种方法名称作为不同的基本元素进行字符串编码时,也可以先基于任意一份性能采样数据的方法名称进行编码,生成一个共享编码表,以节省存储空间。这里,本实施例中采用的是哈夫曼编码方法。
具体地,统计所述多份性能采样数据中任意一份性能采样数据中每种方法名称的数量;为每种方法名称分配一个唯一的字符串;将所述每种方法名称、所述每种方法名称的数量以及对应的字符串存储至预设的映射表中,所述映射表如表1所示。其中,所述字符串也可以从26个大小写字母中确定。
表2
方法名称 出现次数 字符编码
A 240 f
B 170 d
C 100 e
所述映射表为一个共享编码表,然后将共享编码表存储在数据库中,这样只需存储一个共享编码表,节省了存储空间。并且,因字符串是可读数据,即使将数据存储后,数据依然是可读的;因此用户在进行信息检索时,可以根据相应的字符串检索到对应的方法名称,再获取到该方法名称的性能采样数据。
另外,若想进一步提高编码率,所述共享编码表可以包括多个,每个共享编码表都有一个唯一标识,这样的话,每份性能采样数据可以根据指定的标识选择对应的共享编码表。
S112,当需要对同一个应用程序的多份性能采样数据进行存储时,获取每份性能数据的每种方法名称,从所述共享编码表中查询每种方法名称对应的字符串;
共享编码表生成之后,当需要对同一个应用程序的多份性能采样数据进行存储时,获取每份性能数据的每种方法名称,从所述共享编码表中查询每种方法名称对应的字符串。
比如方法名称为A,那么对应的字符串就为f。
S113,分别将每份所述性能采样数据中的每种所述方法名称对应的字符串及每种所述方法名称对应的运行数据进行序列化,生成字符串序列;
查询到每种所述方法名称对应的字符串后,然后根据每种方法名称对应的字符串生成一个字符串序列;在所述字符串序列中,在不同的字符串之间添加分隔符,以方便精准检索。这里,所述对应的字符串是预设的。
比如某份性能采样数据中包括的方法名称为A和B;第一份性能采样数据中,方法A对应的运行数据是1,方法B对应的运行数据为B;那么字符串序列为:f,d;1,3。
同样地,假如需要对1000份性能采样数据进行存储时,按照上述同样的方法分别生成即可。这里,每个运行数据都有对应的偏移量或提取标识;所述偏移量可以为时间偏移、序号偏移或地址偏移。
S114,将所述字符串序列进行压缩,获取压缩结果,将所述压缩结果存储至数据库中。
最后将所述方法名称对应的字符串进行压缩,将每种所述方法名称对应的运行数据进行压缩,将压缩后的字符串及对应的运行数据存储至数据库中。
当然也可以对所述序列化字符串进行压缩,获取压缩结果,将所述压缩结果存储至数据库中。
这里,因方法名称一般包括几个到几十个字符不等,如果是直接以单个字符进行压缩时,占用的空间比较大,但以方法名称为基本元素进行字符串编码后,一般也就包括1个到几个字符,这样在压缩时占用的空间就比较小。
比如以直播间某次请求的性能采样数据为例,总共出现了476个方法名称,共出现1788次,平均每个方法名称出现3.8次。方法名称的加权平均长度为28.6个字符。如果不考虑方法名出现次数,则这457个方法名的平均长度为31.4个字符。在序列化之后的字符串中,方法名的字符占据了总体内容的58.0%。
经过上述对方法名称进行哈夫曼编码后,一个方法名可以用平均8.0个bit位来表示。相比之下,如果以字符形式存储,方法名中每一个字符都需要1个字节(1字节=8bit)。也就意味着编码后,方法名称的占用空间只有之前的28.6分之一。
当使用的是共享编码表时,由于编码表是共享的,因此不需要在压缩结果中额外存储所使用的编码表(存储引用的空间可以忽略不计)。那么被编码的每个方法名称平均节省27.6个字符长度,或者说节省96.5%的空间。考虑到方法名的字符内容占总体内容的58%,乘以96.5%就是56%。即理论上,通过本方案可以在常规压缩方法之前,将待压缩内容缩小56%的尺寸,这样也就减少了存储空间。
需要说明的是:剩下的42%的运行数据按照常规的压缩方式压缩、存储即可。
当需要对性能采样数据进行检索时,可以编码表(共享编码表或非共享编码表)查找到目标方法名称对应的字符串编码,然后查找到该字符串编码对应的总的运行数据,然后根据目标运行数据的偏移地址或提取标识从总的运行数据中提取目标运行数据即可。
实施例二
相应于实施例一,本实施例还提供一种用于数据存储的装置,如图2所示,所述装置包括:
获取单元21用于获取同一应用程序的任意一份性能采样数据,所述性能采样数据包括:多种方法名称及对应的运行数据;比如需要获取到用户名称,那么对应的方法名称就是username或userID;所述运行数据包括每种方法名称的运行时间、运行次数、运行占用的内存及CPU使用率等等。
编码单元22用于将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表。这里,因对于同一个应用程序的进行采样时,无论采样多少次,方法名称的总数是固定的,每种方法名称在多份采样数据出现的频次也是差不多的,考虑到性能采样数据的特殊性,本步骤在将每种方法名称作为不同的基本元素进行字符串编码时,也可以先基于任意一份性能采样数据的方法名称进行编码,生成一个共享编码表,以节省存储空间。这里,本实施例中采用的是哈夫曼编码方法。
具体地,统计所述多份性能采样数据中任意一份性能采样数据中每种方法名称的数量;为每种方法名称分配一个唯一的字符串;将所述每种方法名称、所述每种方法名称的数量以及对应的字符串存储至预设的映射表中,所述映射表如表1所示。其中,所述字符串也可以从26个大小写字母中确定。
表2
方法名称 出现次数 字符编码
A 240 f
B 170 d
C 100 e
所述映射表为一个共享编码表,然后将共享编码表存储在数据库中,这样只需存储一个共享编码表,节省了存储空间。并且,因字符串是可读数据,即使将数据存储后,数据依然是可读的;因此用户在进行信息检索时,可以根据相应的字符串检索到对应的方法名称,再获取到该方法名称的性能采样数据。
另外,若想进一步提高编码率,所述共享编码表可以包括多个,每个共享编码表都有一个唯一标识,这样的话,每份性能采样数据可以根据指定的标识选择对应的共享编码表。
共享编码表生成之后,需要对同一个应用程序的多份性能采样数据进行存储时,查询单元23用于当获取每份性能数据的每种方法名称,从所述共享编码表中查询每种方法名称对应的字符串。比如方法名称为A,那么对应的字符串就为f。
查询到每种所述方法名称对应的字符串后,生成单元24用于分别将每份所述性能采样数据中的每种所述方法名称对应的字符串及每种所述方法名称对应的运行数据进行序列化,生成字符串序列;在所述字符串序列中,在不同的字符串之间添加分隔符,以方便精准检索。这里,所述对应的字符串是预设的。
比如某份性能采样数据中包括的方法名称为A和B;第一份性能采样数据中,方法A对应的运行数据是1,方法B对应的运行数据为B;那么字符串序列为:f,d;1,3。
同样地,假如需要对1000份性能采样数据进行存储时,按照上述同样的方法分别生成即可。这里,每个运行数据都有对应的偏移量或提取标识;所述偏移量可以为时间偏移、序号偏移或地址偏移。
用于将所述字符串序列进行压缩,获取压缩结果;存储单元26用于将所述压缩结果存储至数据库中。
具体地,压缩单元25将所述方法名称对应的字符串进行压缩,将每种所述方法名称对应的运行数据进行压缩,将压缩后的字符串及对应的运行数据存储至数据库中。
压缩单元25也可以将所述序列化字符串进行压缩,获取压缩结果,存储单元26将所述压缩结果存储至数据库中。
这里,因方法名称一般包括几个到几十个字符不等,如果是直接以单个字符进行压缩时,占用的空间比较大,但以方法名称为基本元素进行字符串编码后,一般也就包括1个到几个字符,这样在压缩时占用的空间就比较小。
比如以直播间某次请求的性能采样数据为例,总共出现了476个方法名称,共出现1788次,平均每个方法名称出现3.8次。方法名称的加权平均长度为28.6个字符。如果不考虑方法名出现次数,则这457个方法名的平均长度为31.4个字符。在序列化之后的字符串中,方法名的字符占据了总体内容的58.0%。
经过上述对方法名称进行哈夫曼编码后,一个方法名可以用平均8.0个bit位来表示。相比之下,如果以字符形式存储,方法名中每一个字符都需要1个字节(1字节=8bit)。也就意味着编码后,方法名称的占用空间只有之前的28.6分之一。
当使用的是共享编码表时,由于编码表是共享的,因此不需要在压缩结果中额外存储所使用的编码表(存储引用的空间可以忽略不计)。那么被编码的每个方法名称平均节省27.6个字符长度,或者说节省96.5%的空间。考虑到方法名的字符内容占总体内容的58%,乘以96.5%就是56%。即理论上,通过本方案可以在常规压缩方法之前,将待压缩内容缩小56%的尺寸,这样也就减少了存储空间。
需要说明的是:剩下的42%的运行数据按照常规的压缩方式压缩、存储即可。
当需要对性能采样数据进行检索时,可以编码表(共享编码表或非共享编码表)查找到目标方法名称对应的字符串编码,然后查找到该字符串编码对应的总的运行数据,然后根据目标运行数据的偏移地址或提取标识从总的运行数据中提取目标运行数据即可。
实施例三
本实施例还提供一种用于数据存储的计算机设备,如图3所示,所述计算机设备包括:射频(Radio Frequency,RF)电路310、存储器320、输入单元330、显示单元340、音频电路350、WiFi模块360、处理器370、以及电源380等部件。本领域技术人员可以理解,图3中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图3对计算机设备的各个构成部件进行具体的介绍:
RF电路310可用于信号的接收和发送,特别地,将基站的下行信息接收后,给处理器370处理。通常,RF电路310包括但不限于至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。
存储器320可用于存储软件程序以及模块,处理器370通过运行存储在存储器320的软件程序以及模块,从而执行计算机设备的各种功能应用以及数据处理。存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元330可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。具体地,输入单元330可包括键盘331以及其他输入设备332。键盘331,可收集用户在其上的输入操作,并根据预先设定的程式驱动相应的连接装置。键盘331采集到输出信息后再送给处理器370。除了键盘331,输入单元330还可以包括其他输入设备332。具体地,其他输入设备332可以包括但不限于触控面板、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元340可用于显示由用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元340可包括显示面板341,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(OrganicLight-Emitting Diode,OLED)等形式来配置显示面板341。进一步的,键盘331可覆盖显示面板341,当键盘331检测到在其上或附近的触摸操作后,传送给处理器370以确定触摸事件的类型,随后处理器370根据输入事件的类型在显示面板341上提供相应的视觉输出。虽然在图3中键盘331与显示面板341是作为两个独立的部件来实现计算机设备的输入和输入功能,但是在某些实施例中,可以将键盘331与显示面板341集成而实现计算机设备的输入和输出功能。
音频电路350、扬声器351,传声器352可提供用户与计算机设备之间的音频接口。音频电路350可将接收到的音频数据转换后的电信号,传输到扬声器351,由扬声器351转换为声音信号输出;
WiFi属于短距离无线传输技术,计算机设备通过WiFi模块360可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图3示出了WiFi模块360,但是可以理解的是,其并不属于计算机设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器370是计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器320内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器370可包括一个或多个处理单元;优选的,处理器370可集成应用处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等。
计算机设备还包括给各个部件供电的电源380(比如电源适配器),优选的,电源可以通过电源管理系统与处理器370逻辑相连。
本发明实施例提供的用于存储数据的方法、装置及计算机设备能带来的有益效果至少是:
本发明实施例提供了一种用于数据存储的方法、装置及计算机设备,应用在直播平台中,本发明实施例提供了一种用于数据存储的方法、装置及计算机设备,所述方法应用在直播平台中,所述方法包括:获取同一应用程序的任意一份性能采样数据,所述性能采样数据包括:多种方法名称及对应的运行数据;将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表;当需要对同一个应用程序的多份性能采样数据进行存储时,获取每份性能数据的每种方法名称,从所述共享编码表中查询每种方法名称对应的字符串;分别将每份所述性能采样数据中的每种所述方法名称对应的字符串及每种所述方法名称对应的运行数据进行序列化,生成序列化字符串;将所述序列化字符串进行压缩,获取压缩结果,将所述压缩结果存储至数据库中;如此,由于同一应用程序的多份性能采样数据包含的方法名称具有一致性,因此可以只生成一个共享编码表,多份性能采样数据可以共用一个共享编码表,这样在存储时,减少了需要存储数据的大小;并且在进行编码时是将将每种方法名称作为不同的基本元素进行字符串编码,进而减少了存储空间,确保了运行效率;而字符串是可读数据,即使将数据存储后,数据依然是可读的;因此用户在进行信息检索时,可以根据相应的字符串检索到对应的方法名称,再获取到该方法名称的性能采样数据。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP,Digital SignalProcessing)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读存储介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种用于数据存储的方法,特征在于,应用在直播平台中,所述方法包括:
获取同一应用程序的任意一份性能采样数据,所述性能采样数据包括:多种方法名称及对应的运行数据;
将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表;
当需要对同一个应用程序的多份性能采样数据进行存储时,获取每份性能数据的每种方法名称,从所述共享编码表中查询每种方法名称对应的字符串;
分别将每份所述性能采样数据中的每种所述方法名称对应的字符串及每种所述方法名称对应的运行数据进行序列化,生成字符串序列;
将所述字符串序列进行压缩,获取压缩结果,将所述压缩结果存储至数据库中。
2.如权利要求1所述的方法,其特征在于,所述将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表,包括:
统计所述多份性能采样数据中任意一份性能采样数据中每种方法名称的数量;
为每种方法名称分配一个唯一的字符串;
将所述每种方法名称、所述每种方法名称的数量以及对应的字符串存储至预设的映射表中,所述映射表为共享编码表,所述对应的字符串是预设的。
3.如权利要求1所述的方法,其特征在于,所述字符串序列中,不同的字符串之间设置有分隔符。
4.如权利要求1所述的方法,其特征在于,所述运行数据包括:运行时间、运行次数、运行占用的内存及CPU使用率。
5.一种用于数据存储的装置,其特征在于,所述装置包括:
获取单元,用于获取同一应用程序的任意一份性能采样数据,所述性能采样数据包括:多种方法名称及对应的运行数据;
编码单元,用于将每种方法名称作为不同的基本元素进行字符串编码,生成共享编码表;
查询单元,用于当需要对同一个应用程序的多份性能采样数据进行存储时,获取每份性能数据的每种方法名称,从所述共享编码表中查询每种方法名称对应的字符串;
生成单元,用于分别将每份所述性能采样数据中的每种所述方法名称对应的字符串及每种所述方法名称对应的运行数据进行序列化,生成字符串序列;
压缩单元,用于将所述字符串序列进行压缩,获取压缩结果;
存储单元,用于将所述压缩结果存储至数据库中。
6.如权利要求5所述的装置,其特征在于,所述编码单元具体用于:
统计所述多份性能采样数据中任意一份性能采样数据中每种方法名称的数量;
为每种方法名称分配一个唯一的字符串;
将所述每种方法名称、所述每种方法名称的数量以及对应的字符串存储至预设的映射表中,所述映射表为共享编码表,所述对应的字符串是预设的。
7.如权利要求5所述的装置,其特征在于,在所述字符串序列中,不同的字符串之间设置有分隔符。
8.如权利要求5所述的装置,其特征在于,所述运行数据包括:运行时间、运行次数、运行占用的内存及CPU使用率。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时能够执行如权利要求1至4任一所述的方法。
10.一种用于数据存储的计算机设备,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中,
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至4任一所述的方法。
CN201810015930.2A 2018-01-08 2018-01-08 一种用于数据存储的方法、装置及计算机设备 Active CN108256017B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810015930.2A CN108256017B (zh) 2018-01-08 2018-01-08 一种用于数据存储的方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810015930.2A CN108256017B (zh) 2018-01-08 2018-01-08 一种用于数据存储的方法、装置及计算机设备

Publications (2)

Publication Number Publication Date
CN108256017A true CN108256017A (zh) 2018-07-06
CN108256017B CN108256017B (zh) 2020-12-15

Family

ID=62725065

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810015930.2A Active CN108256017B (zh) 2018-01-08 2018-01-08 一种用于数据存储的方法、装置及计算机设备

Country Status (1)

Country Link
CN (1) CN108256017B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112232025A (zh) * 2019-06-26 2021-01-15 杭州海康威视数字技术股份有限公司 一种字符串存储方法、装置及电子设备
CN116614139A (zh) * 2023-07-20 2023-08-18 酒仙网络科技股份有限公司 一种售酒小程序内用户交易信息压缩存储方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783788A (zh) * 2009-01-21 2010-07-21 联想(北京)有限公司 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置
US20100191777A1 (en) * 2009-01-27 2010-07-29 Tatu Ylonen Oy Ltd Serialization of shared and cyclic data structures using compressed object encodings
CN103379136A (zh) * 2012-04-17 2013-10-30 中国移动通信集团公司 一种日志采集数据压缩方法、解压缩方法及装置
CN104050269A (zh) * 2014-06-23 2014-09-17 上海帝联信息科技股份有限公司 日志压缩方法及装置、解压缩方法及装置
EP2903241A1 (en) * 2014-01-31 2015-08-05 Yahoo! Inc. Compression of serialized data for communication from a client-side application
CN105893337A (zh) * 2015-01-04 2016-08-24 伊姆西公司 用于文本压缩和解压缩的方法和设备
CN105933009A (zh) * 2016-05-19 2016-09-07 浪潮(北京)电子信息产业有限公司 数据压缩方法及系统、解压缩方法及系统
CN106503003A (zh) * 2015-09-06 2017-03-15 阿里巴巴集团控股有限公司 一种可扩展标记语言xml文档的压缩、解压方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101783788A (zh) * 2009-01-21 2010-07-21 联想(北京)有限公司 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置
US20100191777A1 (en) * 2009-01-27 2010-07-29 Tatu Ylonen Oy Ltd Serialization of shared and cyclic data structures using compressed object encodings
CN103379136A (zh) * 2012-04-17 2013-10-30 中国移动通信集团公司 一种日志采集数据压缩方法、解压缩方法及装置
EP2903241A1 (en) * 2014-01-31 2015-08-05 Yahoo! Inc. Compression of serialized data for communication from a client-side application
CN104820668A (zh) * 2014-01-31 2015-08-05 雅虎公司 对数据进行压缩序列化以从客户端应用进行传输
CN104050269A (zh) * 2014-06-23 2014-09-17 上海帝联信息科技股份有限公司 日志压缩方法及装置、解压缩方法及装置
CN105893337A (zh) * 2015-01-04 2016-08-24 伊姆西公司 用于文本压缩和解压缩的方法和设备
CN106503003A (zh) * 2015-09-06 2017-03-15 阿里巴巴集团控股有限公司 一种可扩展标记语言xml文档的压缩、解压方法和装置
CN105933009A (zh) * 2016-05-19 2016-09-07 浪潮(北京)电子信息产业有限公司 数据压缩方法及系统、解压缩方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112232025A (zh) * 2019-06-26 2021-01-15 杭州海康威视数字技术股份有限公司 一种字符串存储方法、装置及电子设备
CN116614139A (zh) * 2023-07-20 2023-08-18 酒仙网络科技股份有限公司 一种售酒小程序内用户交易信息压缩存储方法
CN116614139B (zh) * 2023-07-20 2023-09-19 酒仙网络科技股份有限公司 一种售酒小程序内用户交易信息压缩存储方法

Also Published As

Publication number Publication date
CN108256017B (zh) 2020-12-15

Similar Documents

Publication Publication Date Title
CN104159136B (zh) 互动信息的获取方法、终端、服务器及系统
CN106970816B (zh) 一种软件升级处理方法、装置及音频播放设备
RU2008109840A (ru) Установление соответствия между унифицированным идентификатором ресурса и идентификатором для справочника услуг
CN107770596A (zh) 一种特效同步方法、装置及移动终端
CN108243346A (zh) 一种过滤弹幕信息的方法、服务器及计算机设备
CN107277029A (zh) 一种远程过程调用的方法、装置及计算机设备
CN104393848A (zh) 音量调节方法及装置
CN111061498B (zh) 一种配置信息管理系统
CN108256017A (zh) 一种用于数据存储的方法、装置及计算机设备
CN104899204A (zh) 数据存储方法及装置
CN108184148B (zh) 一种用于识别用户的方法、装置及计算机设备
CN107479985A (zh) 一种远程过程调用的方法、装置及计算机设备
CN104699501A (zh) 一种运行应用程序的方法及装置
CN109995743A (zh) 一种多媒体文件的处理方法和终端
CN104243394A (zh) 多媒体文件的播放方法及装置
CN107577712B (zh) 一种加载页面的方法、装置及计算机设备
CN109391379B (zh) 一种harq指示方法、装置及系统
CN101483844B (zh) 索引移动电话号码的方法和系统
CN108133033A (zh) 一种用于数据存储的方法、装置及计算机设备
CN108233942A (zh) 一种用于数据存储的方法、装置及计算机设备
CN103561291A (zh) 视频通道分配管理方法和相关设备及通信系统
CN104951506A (zh) 获取多媒体文件的方法和装置
CN106970812A (zh) 升级文件处理、装置及终端
CN108052325B (zh) 一种用于实现视图控制器的方法、装置及计算机设备
CN110797048B (zh) 语音信息的获取方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant