CN104063208A - 代码文件的优化方法、系统和服务器 - Google Patents

代码文件的优化方法、系统和服务器 Download PDF

Info

Publication number
CN104063208A
CN104063208A CN201310092867.XA CN201310092867A CN104063208A CN 104063208 A CN104063208 A CN 104063208A CN 201310092867 A CN201310092867 A CN 201310092867A CN 104063208 A CN104063208 A CN 104063208A
Authority
CN
China
Prior art keywords
code file
replaced
content
server
file
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
CN201310092867.XA
Other languages
English (en)
Other versions
CN104063208B (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201310092867.XA priority Critical patent/CN104063208B/zh
Publication of CN104063208A publication Critical patent/CN104063208A/zh
Application granted granted Critical
Publication of CN104063208B publication Critical patent/CN104063208B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出一种代码文件的优化方法、系统和服务器,其中该方法包括以下步骤:服务器获取代码文件;服务器对代码文件进行分析以获取代码文件中的多个变量和/或函数及对应的重复频率,并根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容;服务器生成每个待替换内容对应的标识符,并使用标识符分别替换待替换内容;以及服务器将每个待替换内容与标识符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一个客户端进行发布。根据本发明实施例方法,可以缩短代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输量,优化了代码结构,同时提高代码的执行效率。

Description

代码文件的优化方法、系统和服务器
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码文件的优化方法、系统和服务器。
背景技术
代码文件特别是作为适应动态网页制作需要的编程语言Javascript代码文件等在运行时,需要重复调用很多函数和变量,造成编写的代码文件过长,同时增加了代码文件的传输量,运行效率低。
目前,主要采用对代码文件进行压缩的方法实现代码文件的优化,存在的问题是对代码文件进行压缩只针对上线前的操作有好处,对本身的代码结构没有实质作用,代码的可读性低,同时代码的执行效率低。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的第一个目的在于提出一种代码文件的优化方法。
本发明的第二个目的在于提出一种代码文件的优化系统。
本发明的第三个目的在于提出一种服务器。
为了实现上述目的,本发明第一方面实施例的代码文件的优化方法包括以下步骤:服务器获取代码文件;所述服务器对所述代码文件进行分析以获取所述代码文件中的多个变量和/或函数及对应的重复频率,并根据所述重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容;所述服务器生成每个所述待替换内容对应的标识符,并使用所述标识符分别替换所述待替换内容;以及所述服务器将每个所述待替换内容与所述标识符之间的对应关系作为查询文件,并将所述查询文件和替换之后的所述代码文件向至少一个客户端进行发布。
根据本发明实施例的代码文件的优化方法,通过服务器对代码文件进行分析获取代码文件中变量和/或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/或函数作为待替换内容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是Javascript代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输量,优化了代码结构,同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的代码提供给代码开发者查看,为其主动优化代码提供依据。
为了实现上述目的,本发明第二方面实施例的代码文件的优化系统,包括:服务器和客户端,其中,所述服务器,用于获取代码文件,以及对所述代码文件进行分析以获取所述代码文件中的多个变量和/或函数及对应的重复频率,并根据所述重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容,以及生成每个所述待替换内容对应的标识符,并使用所述标识符分别替换所述待替换内容,以及将每个所述待替换内容与所述标识符之间的对应关系作为查询文件,并将所述查询文件和替换之后的所述代码文件向至少一个所述客户端进行发布。
根据本发明实施例的代码文件的优化系统,通过服务器对代码文件进行分析获取代码文件中变量和/或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/或函数作为待替换内容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是Javascript代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输量,优化了代码结构,同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的代码提供给代码开发者查看,为其主动优化代码提供依据。
为了实现上述目的,本发明第三方面实施例的服务器,包括:获取模块,用于获取代码文件;分析模块,用于对所述代码文件进行分析以获取所述代码文件中的多个变量和/或函数及对应的重复频率;筛选模块,用于根据所述重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容;生成模块,用于生成每个所述待替换内容对应的标识符;替换模块,用于使用所述标识符分别替换所述待替换内容;以及发布模块,用于将每个所述待替换内容与所述标识符之间的对应关系作为查询文件,并将所述查询文件和替换之后的所述代码文件向至少一个客户端进行发布。
根据本发明实施例的服务器,通过对代码文件进行分析获取代码文件中变量和/或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/或函数作为待替换内容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是Javascript代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输量,优化了代码结构,同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的代码提供给代码开发者查看,为其主动优化代码提供依据。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的代码文件的优化方法的流程图;
图2是根据本发明一个具体实施例的代码文件的优化方法的流程图;
图3是根据本发明另一个具体实施例的代码文件的优化方法的流程图;
图4是根据本发明一个实施例的代码文件的优化系统的结构示意图;
图5是根据本发明一个实施例的服务器的结构示意图;
图6是根据本发明一个实施例的分析模块120的结构示意图;以及
图7是根据本发明一个实施例的生成模块140的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考附图描述根据本发明实施例的代码文件的优化方法、系统和服务器。
一种代码文件的优化方法,包括以下步骤:服务器获取代码文件;服务器对代码文件进行分析以获取代码文件中的多个变量和/或函数及对应的重复频率,并根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容;服务器生成每个待替换内容对应的标识符,并使用标识符分别替换待替换内容;以及服务器将每个待替换内容与标识符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一个客户端进行发布。
图1是根据本发明一个实施例的代码文件的优化方法的流程图。
如图1所示,代码文件的优化方法包括以下步骤。
步骤S101,服务器获取代码文件。
在本发明的一个实施例中,代码文件包括javascript代码文件。
步骤S102,服务器对代码文件进行分析以获取代码文件中的多个变量和/或函数及对应的重复频率,并根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容。
具体地,服务器对代码文件中每个变量和/或函数的出现的频率即重复频率进行分析统计,并根据统计的结果生成统计词表格,例如,统计词表格格式可以为,
‘word’=‘count’
‘frequency’=‘100’
可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。服务器可以设置筛选重复频率的预设值,或者服务器可以根据用户指令设置筛选重复频率的预设值,服务器根据预设值判断每个变量和/或函数出现的频率,如果变量或函数出现的频率小于预设值,服务器将该变量和/或函数从统计词表格中删除。
步骤S103,服务器生成每个待替换内容对应的标识符,并使用标识符分别替换待替换内容。
在本发明的一个实施例中,服务器对待替换内容的名称进行缩短处理,并检测缩短处理之后的待替换内容的名称的唯一性,以及将唯一的缩短处理之后的待替换内容的名称作为标识符。具体地,服务器首先根据变量和/或函数的名称进行缩短处理,例如将变量‘count’缩短为‘co’,然后检测缩短处理之后的名称的唯一性,例如变量‘confirm’缩短处理后名称同样为‘co’,为了保证变量名称的唯一性,服务器可以将变量‘confirm’的名称缩短为‘con’或者‘co_f’等。服务器可以根据缩短处理后的待替换内容的名称作为待替换内容的唯一标识符,并用唯一的标识码代替对应的待替换内容,由此可以缩短代码文件的长度,提高代码的执行效率。
步骤S104,服务器将每个待替换内容与标识符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一个客户端进行发布。
根据本发明实施例的代码文件的优化方法,通过服务器对代码文件进行分析获取代码文件中变量和/或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/或函数作为待替换内容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是Javascript代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输量,优化了代码结构,同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的代码提供给代码开发者查看,为其主动优化代码提供依据。
图2是根据本发明一个具体实施例的代码文件的优化方法的流程图。
如图2所示,代码文件的优化方法包括以下步骤。
步骤S201,服务器获取代码文件。
在本发明的一个实施例中,代码文件包括javascript代码文件。
步骤S202,服务器对代码文件进行分析以获取代码文件中的多个变量和/或函数及对应的重复频率,并根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容。
具体地,服务器对代码文件中每个变量和/或函数的出现的频率即重复频率进行分析统计,并根据统计的结果生成统计词表格,例如,统计词表格格式可以为,
‘word’=‘count’
‘frequency’=‘100’
可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。服务器可以设置筛选重复频率的预设值,或者服务器可以根据用户指令设置筛选重复频率的预设值,服务器根据预设值判断每个变量和/或函数出现的频率,如果变量或函数出现的频率小于预设值,服务器将该变量和/或函数从统计词表格中删除。
步骤S203,服务器生成每个待替换内容对应的标识符,并使用标识符分别替换待替换内容。
在本发明的一个实施例中,服务器对待替换内容的名称进行缩短处理,并检测缩短处理之后的待替换内容的名称的唯一性,以及将唯一的缩短处理之后的待替换内容的名称作为标识符。具体地,服务器首先根据变量和/或函数的名称进行缩短处理,例如将变量‘count’缩短为‘co’,然后检测缩短处理之后的名称的唯一性,例如变量‘confirm’缩短处理后名称同样为‘co’,为了保证变量名称的唯一性,服务器可以将变量‘confirm’的名称缩短为‘con’或者‘co_f’等。服务器可以根据缩短处理后的待替换内容的名称作为待替换内容的唯一标识符,并用唯一的标识码代替对应的待替换内容,由此可以缩短代码文件的长度,提高代码的执行效率。
步骤S204,服务器将每个待替换内容与标识符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一个客户端进行发布。
步骤S205,客户端缓存查询文件和待替换内容。
步骤S206,当客户端运行代码文件时,客户端根据标识符在查询文件中查询并从缓存中获取对应的待替换内容。
根据本发明实施例的代码文件的优化方法,客户端运行代码文件时根据标识符在查询文件中查询对应的待替换文件,可以提高代码文件特别是Javascript代码文件的运行效率,提高了代码的可读性,同时提升了用户体验。
图3是根据本发明另一个具体实施例的代码文件的优化方法的流程图。
如图3所示,代码文件的优化方法包括以下步骤。
步骤S301,服务器获取代码文件。
在本发明的一个实施例中,代码文件包括javascript代码文件。
步骤S302,服务器获取代码文件中前后都存在空格的多个字符串。
步骤S303,服务器根据关键字白名单对多个字符串进行过滤以获取多个变量和/或函数,其中关键字白名单包括代码文件对应的代码语言所使用的多个关键字。
具体地,服务器检测每个字符串是否在关键词白名单中存在,关键词白名单包括代码文件例如Javascript代码文件中的多个关键词,例如,‘var’、‘for’、‘return’等。如果字符串在关键词白名单中存在,服务器不保存该字符串。服务器将过滤后的变量和/或函数保存到统计词表格中。
步骤S304,服务器统计每个所述变量和/或函数的所述重复频率。
具体地,服务器对代码文件中每个变量和/或函数的出现的频率即重复频率进行分析统计,并根据统计的结果生成统计词表格,例如,统计词表格格式可以为,
‘word’=‘count’
‘frequency’=‘100’
可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。
步骤S305,服务器根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容。
具体地,服务器可以设置筛选重复频率的预设值,或者服务器可以根据用户指令设置筛选重复频率的预设值,服务器根据预设值判断每个变量和/或函数出现的频率,如果变量和/或函数出现的频率小于预设值,服务器将该变量和/或函数从统计词表格中删除。
步骤S306,服务器生成每个待替换内容对应的标识符,并使用标识符分别替换待替换内容。
在本发明的一个实施例中,服务器对待替换内容的名称进行缩短处理,并检测缩短处理之后的待替换内容的名称的唯一性,以及将唯一的缩短处理之后的待替换内容的名称作为标识符。具体地,服务器首先根据变量和/或函数的名称进行缩短处理,例如将变量‘count’缩短为‘co’,然后检测缩短处理之后的名称的唯一性,例如变量‘confirm’缩短处理后名称同样为‘co’,为了保证变量名称的唯一性,服务器可以将变量‘confirm’的名称缩短为‘con’或者‘co_f’等。服务器可以根据缩短处理后的待替换内容的名称作为待替换内容的唯一标识符,并用唯一的标识码代替对应的待替换内容,由此可以缩短代码文件的长度,提高代码的执行效率。
步骤S307,服务器将每个待替换内容与标识符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一个客户端进行发布。
步骤S308,客户端缓存查询文件和待替换内容。
步骤S309,当客户端运行代码文件时,客户端根据标识符在查询文件中查询并从缓存中获取对应的待替换内容。
根据本发明实施例的代码文件的优化方法,服务器通过获取代码文件中前后都存在空格的多个字符串,并根据关键字白名单对多个字符串进行过滤以获取多个变量和/或函数,可以避免服务器对代码文件特别是Javascript代码文件中的关键词进行统计,同时避免了服务器资源的浪费。
为了实现上述实施例,本发明还提出一种代码文件的优化系统。
一种代码文件的优化的系统,包括:服务器和客户端,其中,服务器,用于获取代码文件,以及对代码文件进行分析以获取代码文件中的多个变量和/或函数及对应的重复频率,并根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容,以及生成每个待替换内容对应的标识符,并使用标识符分别替换待替换内容,以及将每个待替换内容与标识符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一个客户端进行发布。
图4是根据本发明一个实施例的代码文件的优化系统的结构示意图。
如图4所示,代码文件的优化系统包括:服务器10和客户端20。
具体地,服务器10用于获取代码文件,以及对代码文件进行分析以获取代码文件中的多个变量和/或函数及对应的重复频率,并根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容,以及生成每个待替换内容对应的标识符,并使用标识符分别替换待替换内容,以及将每个待替换内容与标识符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一个客户端20进行发布。
更具体地,服务器10获取代码文件后,服务器10对代码文件中每个变量和/或函数的出现的频率即重复频率进行分析统计,并根据统计的结果生成统计词表格,例如,统计词表格格式可以为,
‘word’=‘count’
‘frequency’=‘100’
可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。服务器10可以设置筛选重复频率的预设值,或者服务器10可以根据用户指令设置筛选重复频率的预设值,服务器10根据预设值判断每个变量和/或函数出现的频率,如果变量或函数出现的频率小于预设值,服务器10将该变量和/或函数从统计词表格中删除。
在本发明的一个实施例中,代码文件包括javascript代码文件。
在本发明的一个实施例中,服务器10对待替换内容的名称进行缩短处理,并检测缩短处理之后的待替换内容的名称的唯一性,以及将唯一的缩短处理之后的待替换内容的名称作为标识符。具体地,服务器10首先根据变量和/或函数的名称进行缩短处理,例如将变量‘count’缩短为‘co’,然后检测缩短处理之后的名称的唯一性,例如变量‘confirm’缩短处理后名称同样为‘co’,为了保证变量名称的唯一性,服务器10可以将变量‘confirm’的名称缩短为‘con’或者‘co_f’等。服务器10可以根据缩短处理后的待替换内容的名称作为待替换内容的唯一标识符,并用唯一的标识码代替对应的待替换内容,由此可以缩短代码文件的长度,提高代码的执行效率。
根据本发明实施例的代码文件的优化系统,通过服务器对代码文件进行分析获取代码文件中变量和/或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/或函数作为待替换内容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是Javascript代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输量,优化了代码结构,同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的代码提供给代码开发者查看,为其主动优化代码提供依据。
在本发明的一个实施例中,客户端20用于缓存查询文件和待替换内容,并当客户端20运行代码文件时,根据标识符在查询文件中查询并从缓存中获取对应的待替换内容。由此,可以提高代码文件特别是Javascript代码文件的运行效率,提高了代码的可读性,同时提升了用户体验。
在本发明的一个实施例中,服务器10还用于获取代码文件中前后都存在空格的多个字符串,并根据关键字白名单对多个字符串进行过滤以获取多个变量和/或函数,其中关键字白名单包括代码文件对应的代码语言所使用的多个关键字,以及统计每个变量和/或函数的重复频率。具体地,首先,服务器10获取代码文件中前面存在空格并且后面存在空格或者换行符的字符串。然后,服务器10检测每个字符串是否在关键词白名单中存在,关键词白名单包括Javascript代码的多个关键词,例如,‘var’、‘for’、‘return’等。如果字符串在关键词白名单中存在,服务器10不保存该字符串。服务器10将过滤后的变量和/或函数保存到统计词表格中。由此,可以避免服务器对Javascript代码中的关键词进行统计,同时避免了服务器资源的浪费。
为了实现上述实施例,本发明还提出一种服务器。
一种服务器,包括:获取模块,用于获取代码文件;分析模块,用于对代码文件进行分析以获取代码文件中的多个变量和/或函数及对应的重复频率;筛选模块,用于根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容;生成模块,用于生成每个待替换内容对应的标识符;替换模块,用于使用标识符分别替换待替换内容;以及发布模块,用于将每个待替换内容与标识符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一个客户端进行发布。
图5是根据本发明一个实施例的服务器的结构示意图。
如图5所示,服务器包括:获取模块110、分析模块120、筛选模块130、生成模块140、替换模块150和发布模块160。
具体地,获取模块110用于获取代码文件。在本发明的一个实施例中,代码文件包括javascript代码文件。
分析模块120用于对获取模块110获取的代码文件进行分析以获取代码文件中的多个变量和/或函数及对应的重复频率。更具体地,分析模块120对代码文件中每个变量和/或函数的出现的频率即重复频率进行分析统计,并根据统计的结果生成统计词表格,例如,统计词表格格式可以为,
‘word’=‘count’
‘frequency’=‘100’
可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。
筛选模块130用于根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容。更具体地,筛选模块130可以设置筛选重复频率的预设值,或者筛选模块130可以根据用户指令设置筛选重复频率的预设值,筛选模块130根据预设值判断每个变量和/或函数出现的频率,如果变量或函数出现的频率小于预设值,筛选模块130将该变量和/或函数从统计词表格中删除。
生成模块140用于生成每个待替换内容对应的标识符。
替换模块150用于使用标识符分别替换待替换内容。更具体地,替换模块150可以根据生成模块140缩短处理后的待替换内容的名称作为待替换内容的唯一标识符,并用唯一的标识码代替对应的待替换内容。
发布模块160用于将每个待替换内容与标识符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一个客户端进行发布。
根据本发明实施例的服务器,通过对代码文件进行分析获取代码文件中变量和/或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/或函数作为待替换内容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是Javascript代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输量,优化了代码结构,同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的代码提供给代码开发者查看,为其主动优化代码提供依据。
图6是根据本发明一个实施例的分析模块120的结构示意图。
如图6所示,分析模块120包括:获取单元121、过滤单元122和统计单元123。
具体地,获取单元121用于获取代码文件中前后都存在空格的多个字符串。
过滤单元122用于根据关键字白名单对获取单元121获取的多个字符串进行过滤以获取多个变量和/或函数,其中关键字白名单包括代码文件对应的代码语言所使用的多个关键字。更具体地,过滤单元122检测每个字符串是否在关键词白名单中存在,关键词白名单包括Javascript代码的多个关键词,例如,‘var’、‘for’、‘return’等。如果字符串在关键词白名单中存在,过滤单元122不保存该字符串。过滤单元122将过滤后的变量和/或函数保存到统计词表格中。
统计单元123用于统计过滤单元122过滤的每个变量和/或函数的重复频率。更具体地,统计单元123对代码文件中每个变量和/或函数的出现的频率即重复频率进行分析统计,并根据统计的结果生成统计词表格,例如,统计词表格格式可以为,
‘word’=‘count’
‘frequency’=‘100’
可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。
根据本发明实施例的服务器,通过获取代码文件中前后都存在空格的多个字符串,并根据关键字白名单对多个字符串进行过滤以获取多个变量和/或函数,可以避免服务器对代码文件特别是Javascript代码文件中的关键词进行统计,同时避免了服务器资源的浪费。
图7是根据本发明一个实施例的生成模块140的结构示意图。
如图7所示,生成模块140包括:处理单元141和检测单元142。
具体地,处理单元141用于对待替换内容的名称进行缩短处理。更具体地,处理单元141首先根据变量和/或函数的名称进行缩短处理,例如将变量‘count’缩短为‘co’。
检测单元142用于检测处理单元141缩短处理之后的待替换内容的名称的唯一性,并将唯一的缩短处理之后的待替换内容的名称作为标识符。更具体地,检测单元142检测缩短处理之后的名称的唯一性,例如变量‘confirm’缩短处理后名称同样为‘co’,为了保证变量名称的唯一性,检测单元142检测到缺乏唯一性之后通知处理单元141将变量‘confirm’的名称缩短为‘con’或者‘co_f’等。
根据本发明实施例的服务器,可以缩短代码文件的长度,提高代码的执行效率。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (14)

1.一种代码文件的优化方法,其特征在于,包括以下步骤:
服务器获取代码文件;
所述服务器对所述代码文件进行分析以获取所述代码文件中的多个变量和/或函数及对应的重复频率,并根据所述重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容;
所述服务器生成每个所述待替换内容对应的标识符,并使用所述标识符分别替换所述待替换内容;以及
所述服务器将每个所述待替换内容与所述标识符之间的对应关系作为查询文件,并将所述查询文件和替换之后的所述代码文件向至少一个客户端进行发布。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述客户端缓存所述查询文件和所述待替换内容;以及
当所述客户端运行所述代码文件时,所述客户端根据所述标识符在所述查询文件中查询并从所述缓存中获取对应的所述待替换内容。
3.根据权利要求1或2所述的方法,其特征在于,所述服务器对所述代码文件进行分析以获取所述代码文件中的多个变量和/或函数及对应的重复频率,进一步包括:
所述服务器获取所述代码文件中前后都存在空格的多个字符串;
所述服务器根据关键字白名单对所述多个字符串进行过滤以获取多个所述变量和/或函数,其中所述关键字白名单包括所述代码文件对应的代码语言所使用的多个关键字;以及
所述服务器统计每个所述变量和/或函数的所述重复频率。
4.根据权利要求1所述的方法,其特征在于,所述服务器生成每个所述待替换内容对应的标识符,进一步包括:
所述服务器对所述待替换内容的名称进行缩短处理,并检测缩短处理之后的所述待替换内容的名称的唯一性,以及将唯一的缩短处理之后的所述待替换内容的名称作为所述标识符。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述代码文件包括javascript代码文件。
6.一种代码文件的优化系统,其特征在于,包括:服务器和客户端,其中,
所述服务器,用于获取代码文件,以及对所述代码文件进行分析以获取所述代码文件中的多个变量和/或函数及对应的重复频率,并根据所述重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容,以及生成每个所述待替换内容对应的标识符,并使用所述标识符分别替换所述待替换内容,以及将每个所述待替换内容与所述标识符之间的对应关系作为查询文件,并将所述查询文件和替换之后的所述代码文件向至少一个所述客户端进行发布。
7.根据权利要求6所述的系统,其特征在于,所述客户端用于:
缓存所述查询文件和所述待替换内容,并当所述客户端运行所述代码文件时,根据所述标识符在所述查询文件中查询并从所述缓存中获取对应的所述待替换内容。
8.根据权利要求6或7所述的系统,其特征在于,所述服务器还用于:
获取所述代码文件中前后都存在空格的多个字符串,并根据关键字白名单对所述多个字符串进行过滤以获取多个所述变量和/或函数,其中所述关键字白名单包括所述代码文件对应的代码语言所使用的多个关键字,以及统计每个所述变量和/或函数的所述重复频率。
9.根据权利要求6所述的系统,其特征在于,所述服务器还用于:
对所述待替换内容的名称进行缩短处理,并检测缩短处理之后的所述待替换内容的名称的唯一性,以及将唯一的缩短处理之后的所述待替换内容的名称作为所述标识符。
10.根据权利要求6-9任一项所述的方法,其特征在于,所述代码文件包括javascript代码文件。
11.一种服务器,其特征在于,包括:
获取模块,用于获取代码文件;
分析模块,用于对所述代码文件进行分析以获取所述代码文件中的多个变量和/或函数及对应的重复频率;
筛选模块,用于根据所述重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容;
生成模块,用于生成每个所述待替换内容对应的标识符;
替换模块,用于使用所述标识符分别替换所述待替换内容;以及
发布模块,用于将每个所述待替换内容与所述标识符之间的对应关系作为查询文件,并将所述查询文件和替换之后的所述代码文件向至少一个客户端进行发布。
12.根据权利要求11或2所述的服务器,其特征在于,所述分析模块包括:
获取单元,用于获取所述代码文件中前后都存在空格的多个字符串;
过滤单元,用于根据关键字白名单对所述多个字符串进行过滤以获取多个所述变量和/或函数,其中所述关键字白名单包括所述代码文件对应的代码语言所使用的多个关键字;以及
统计单元,用于统计每个所述变量和/或函数的所述重复频率。
13.根据权利要求11所述的服务器,其特征在于,所述生成模块包括:
处理单元,用于对所述待替换内容的名称进行缩短处理;
检测单元,用于检测缩短处理之后的所述待替换内容的名称的唯一性,并将唯一的缩短处理之后的所述待替换内容的名称作为所述标识符。
14.根据权利要求11-13任一项所述的服务器,其特征在于,所述代码文件包括javascript代码文件。
CN201310092867.XA 2013-03-21 2013-03-21 代码文件的优化方法、系统和服务器 Active CN104063208B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310092867.XA CN104063208B (zh) 2013-03-21 2013-03-21 代码文件的优化方法、系统和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310092867.XA CN104063208B (zh) 2013-03-21 2013-03-21 代码文件的优化方法、系统和服务器

Publications (2)

Publication Number Publication Date
CN104063208A true CN104063208A (zh) 2014-09-24
CN104063208B CN104063208B (zh) 2017-11-17

Family

ID=51550936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310092867.XA Active CN104063208B (zh) 2013-03-21 2013-03-21 代码文件的优化方法、系统和服务器

Country Status (1)

Country Link
CN (1) CN104063208B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021631A (zh) * 2015-03-24 2016-10-12 上海图元软件技术有限公司 交互式数字集成电路仿真验证方法、服务器、客户端及系统
CN108089880A (zh) * 2017-12-28 2018-05-29 北京奇虎科技有限公司 对应用程序安装文件进行预处理的方法、装置和服务器
CN109710510A (zh) * 2018-08-20 2019-05-03 中国平安人寿保险股份有限公司 代码提交方法、装置、设备及可读存储介质
CN110399133A (zh) * 2019-06-25 2019-11-01 西北大学 一种基于前端字节码技术的JavaScript代码优化方法
CN112311720A (zh) * 2019-07-23 2021-02-02 腾讯科技(深圳)有限公司 数据的传输方法及装置
CN112416315A (zh) * 2020-06-16 2021-02-26 上海哔哩哔哩科技有限公司 Css代码的压缩方法、电子设备和存储介质
CN113238796A (zh) * 2021-05-17 2021-08-10 北京京东振世信息技术有限公司 一种代码重构方法、装置、设备及存储介质
CN114546480A (zh) * 2022-04-26 2022-05-27 天津所托瑞安汽车科技有限公司 代码自动集成方法、设备和可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1493983A (zh) * 2003-09-05 2004-05-05 浙江大学 基于j2ee的构件并行编译器
US20040205739A1 (en) * 2001-03-02 2004-10-14 International Business Machines Corporation Optimizing post-link code
CN101739404A (zh) * 2008-11-05 2010-06-16 爱思开电讯投资(中国)有限公司 字节码优化数据库及其建立方法以及字节码优化方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205739A1 (en) * 2001-03-02 2004-10-14 International Business Machines Corporation Optimizing post-link code
CN1493983A (zh) * 2003-09-05 2004-05-05 浙江大学 基于j2ee的构件并行编译器
CN101739404A (zh) * 2008-11-05 2010-06-16 爱思开电讯投资(中国)有限公司 字节码优化数据库及其建立方法以及字节码优化方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021631A (zh) * 2015-03-24 2016-10-12 上海图元软件技术有限公司 交互式数字集成电路仿真验证方法、服务器、客户端及系统
CN108089880A (zh) * 2017-12-28 2018-05-29 北京奇虎科技有限公司 对应用程序安装文件进行预处理的方法、装置和服务器
CN109710510A (zh) * 2018-08-20 2019-05-03 中国平安人寿保险股份有限公司 代码提交方法、装置、设备及可读存储介质
CN110399133A (zh) * 2019-06-25 2019-11-01 西北大学 一种基于前端字节码技术的JavaScript代码优化方法
CN112311720A (zh) * 2019-07-23 2021-02-02 腾讯科技(深圳)有限公司 数据的传输方法及装置
CN112416315A (zh) * 2020-06-16 2021-02-26 上海哔哩哔哩科技有限公司 Css代码的压缩方法、电子设备和存储介质
CN112416315B (zh) * 2020-06-16 2024-05-14 上海哔哩哔哩科技有限公司 Css代码的压缩方法、电子设备和存储介质
CN113238796A (zh) * 2021-05-17 2021-08-10 北京京东振世信息技术有限公司 一种代码重构方法、装置、设备及存储介质
CN114546480A (zh) * 2022-04-26 2022-05-27 天津所托瑞安汽车科技有限公司 代码自动集成方法、设备和可读存储介质

Also Published As

Publication number Publication date
CN104063208B (zh) 2017-11-17

Similar Documents

Publication Publication Date Title
CN104063208A (zh) 代码文件的优化方法、系统和服务器
CN103197930B (zh) 汽车诊断软件自动生成的方法
US8219575B2 (en) Method and system for specifying, preparing and using parameterized database queries
CN107368593B (zh) 数据导入方法、装置及服务器
CN102129425B (zh) 数据仓库中大对象集合表的访问方法及装置
CN109299183A (zh) 一种数据处理方法、装置、终端设备和存储介质
US20110219357A1 (en) Compressing source code written in a scripting language
CN105630682A (zh) 移动终端自动收集及分析崩溃的系统和方法
CN107943976B (zh) 一种海量交易日志中基于账户的热点交易识别方法及系统
CN110888842A (zh) 一种文件存储方法、文件查询方法、装置及设备
CN109670091B (zh) 一种基于数据标准的元数据智能维护方法和装置
CN102650995A (zh) 多维数据分析模型生成系统及方法
CN110941530B (zh) 监控数据的获取方法、装置、计算机设备和存储介质
CN104751053A (zh) 移动智能终端软件的静态行为分析方法
EP1519279A2 (en) Document transformation system
CN109634947A (zh) 一种数据处理方法、系统、设备及介质
CN104866764A (zh) 一种基于对象引用图的Android手机恶意软件检测方法
CN102880471A (zh) 基于命令行的命令执行方法及命令行操作系统
CN105159820A (zh) 一种系统日志数据传输方法及装置
CN106407246B (zh) Sql执行计划管理的方法及装置
CN104166545A (zh) 一种网页资源的嗅探方法以及装置
CN109213950B (zh) Iptv智能机顶盒浏览器应用的数据处理方法及装置
CN104008155A (zh) 资源控制方法、装置和电子设备
CN112699183A (zh) 数据处理方法、系统、可读存储介质及计算机设备
CN109213477B (zh) 一种实现软件线路差异自动对比的方法和装置

Legal Events

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