CN107463541A - 文件差异比较方法、存储介质、电子设备及系统 - Google Patents

文件差异比较方法、存储介质、电子设备及系统 Download PDF

Info

Publication number
CN107463541A
CN107463541A CN201710640044.4A CN201710640044A CN107463541A CN 107463541 A CN107463541 A CN 107463541A CN 201710640044 A CN201710640044 A CN 201710640044A CN 107463541 A CN107463541 A CN 107463541A
Authority
CN
China
Prior art keywords
equal portions
comparison
file
thread
old
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
Application number
CN201710640044.4A
Other languages
English (en)
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 CN201710640044.4A priority Critical patent/CN107463541A/zh
Publication of CN107463541A publication Critical patent/CN107463541A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及软件技术领域,公开了一种文件差异比较方法、存储介质、电子设备及系统,该方法包括S1:按行获取新老文件的文本数据,并将获取的新老文件的文本数据按行进行对应,形成多个对比对;S2:获取浏览器所有未被使用的线程,同时将所有对比对均分成多个等份并标序,每个等份含有预设对数的对比对;S3:依次给获取的每一个线程分配一等份对比对;S4:根据diff算法,单个线程依次对一等份对比对中的每一对对比对的文本数据进行比对处理,并且当一线程对一等份中所有对比对处理完毕,按序将还未分配的一等份对比对分配给该线程进行处理;S5:JavaScript语言渲染比对结果并展示。本发明能够有效提高文本比对速度。

Description

文件差异比较方法、存储介质、电子设备及系统
技术领域
本发明涉及软件技术领域,具体涉及一种文件差异比较方法、存储介质、电子设备及系统。
背景技术
目前,diff比较文件差异功能被广泛使用,在Linux系统便可以直接调用diff命令进行相关的操作,同时版本控制工具git也可以直接调用相关的diff命令来对文件版本的差异进行比较操作。
但在浏览器环境,具体的在浏览器的web端(网页端)应用程序中,由于JavaScript语言的单线程语言特性限制,当浏览器进行大数据量的计算操作时,其它线程的工作便会被阻塞掉,例如,当浏览器进行大数据量的diff文件差异比对工作时,即浏览器中的js执行脚本进行diff差异比对时,浏览器的渲染任务线程便会被阻塞,此时浏览器的显示界面便会出现卡顿的情况,影响用户对浏览器的使用体验。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种文件差异比较方法,提高文本比对速度和保证文本比对结果的正常展示,本发明还提供一种文件差异比较系统,能够有效保证文本比对结果的正常展示。
为达到以上目的,本发明采取的技术方案是,包括:
S1:按行获取新老文件的文本数据,并将获取的新老文件的文本数据按行进行对应,形成多个对比对;
S2:获取浏览器所有未被使用的线程,同时将所有对比对均分成多个等份并标序,每个等份含有预设对数的对比对;
S3:依次给获取的每一个线程分配一等份对比对;
S4:根据diff算法,单个线程依次对一等份对比对中的每一对对比对的文本数据进行比对处理,并且当一线程对一等份中所有对比对处理完毕,按序将还未分配的一等份对比对分配给该线程进行处理,依此类推,直至所有等份中的对比对处理完毕;
S5:JavaScript语言渲染比对结果并展示。
在上述技术方案的基础上,
所述新老文件的文本数据保存于文本框中;
所述文本框中每行文本数据的末尾均含有一换行符。
在上述技术方案的基础上,根据每行文本数据末尾的换行符,获取新老文件的每一行文本数据。
在上述技术方案的基础上,按照每行文本数据的获取顺序,依次对每一对对比对进行排序;
按照每一等份对比对的标序,将每相邻两等份对比对划分为一组。
在上述技术方案的基础上,以组为单位,待每组内两等份对比对均比对处理完成,按照每等份的标序顺序,对所有等份对比对的比对结果进行排序。
本发明还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的方法。
本发明还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的方法。
本发明还提供一种文件差异比较方法系统,包括:
获取模块,其用于按行获取新老文件的文本数据,并将获取的新老文件的文本数据按行进行对应,形成多个对比对,所述获取模块还用于获取浏览器所有未被使用的线程;
划分模块,其用于将所有对比对均分成多个等份并标序,且每个等份含有预设对数的对比对,同时依次给获取的每一个线程分配一等份对比对;
比对执行模块,其用于根据diff算法,进行单个线程依次对一等份对比对中的每一对对比对的文本数据的比对处理,并且当一线程对一等份中所有对比对处理完毕,则按序将还未分配的一等份的对比对分配给该线程进行处理,依此类推,直至所有等份中的对比对处理完毕;
展示模块,其用于展示每对对比对的比对结果。
在上述技术方案的基础上,
所述新老文件的文本数据保存于文本框中;
所述文本框中每行文本数据的末尾均含有一换行符。
在上述技术方案的基础上,根据每行文本数据末尾的换行符,获取模块获取新老文件的每一行文本数据。
与现有技术相比,本发明的优点在于:利用浏览器的多线程处理技术,将大数据量的处理工作细分为单个小工作量的处理任务,并交由单个线程进行处理,达到对浏览器资源充分利用的目的,同时也有效地提高了新老文件文本数据的比对速度,且基于当浏览器在进行比对处理任务时会阻塞渲染线程任务的考虑,因而待所有的文本数据比对完成后,最后由JavaScript语言对比对结果进行渲染和输出,保证比对结果在浏览器中的正常输出和展示。
附图说明
图1为本发明一种文件差异比较方法的流程图;
图2为本发明一种电子设备的结构示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例提供一种文件差异比较方法,用于在浏览器中进行新老文件的比对,本发明实施例的文件差异比较方法基于diff文件差异比较算法,diff文件差异比较算法用于对两个文件或两段文本进行差异比较,然后文件或文本更改前和更改后的区别,从而以增加或减少行数的形式进行表征。本发明实施例的文件差异比较方法具体包括:
S1:按行获取新老文件的文本数据,并将获取的新老文件的文本数据按行进行对应,形成多个对比对。在浏览器中,新老文件的文本数据保存于文本框中,且文本框中每行文本数据的末尾均含有一换行符。
用户在文本框中进行文本数据的输入时,在文本每一行末尾,文本框会给文本末尾默认加上一个换行符,因此,可以根据每行文本数据末尾的换行符,获取新老文件的每一行文本数据,继而对用户在文本框中输入的新老文件的文本内容进行一行一行的分隔,且分隔得到的新文件每一行文本数据与老文件每一行的文本数据相对应,即一行新文件文本数据对应一行老文件文本数据,从而形成多个对比对,具体的如下述结构:
S2:获取浏览器所有未被使用的线程,同时将所有对比对均分成多个等份并标序,每个等份含有预设对数的对比对。每个等份含有的对比对的对数根据单个线程的处理能力进行动态调整。通常情况,均分成的对比对份数大于获取的未被使用的线程的个数,例如,获取的浏览器未被使用的线程数为N个,均分成的对比对等份数为M份,则M大于N,假如总共有1000对对比对要处理,则每等份含有10000/M对对比对。
S3:依次给获取的每一个线程分配一等份对比对,即给每一个线程均分配一等份的对比对。
S4:根据diff算法,单个线程依次对一等份对比对中的每一对对比对的文本数据进行比对处理,并且当一线程对一等份中所有对比对处理完毕,则按序将还未分配的一等份对比对分配给该线程进行处理,确保每个线程在任何时刻都会有处理任务运行,依此类推,直至所有等份中的对比对处理完毕。
在一种实施方式中,假如获取的浏览器未被使用的线程数为N个,均分成的对比对等份数为M份,则对N个线程按照N1,N2,N3...Nn的顺序进行编号,同时对M份等份的对比对按照M1,M2,M3....Mm的顺序进行编号,然后进行任务分配,将M1分配各N1处理,M2分配给N2处理,依此类推,直至所有的线程均被分配任务。然后浏览器的中心管理器对线程处理任务的进程进行监听,当某一线程完成了分配的任务后,如N2线程完成了任务,则将分配后剩下的标号为M(n+1)的等份对比对分配给N2线程处理,接下来如N3线程完成了任务,则将标号为M(n+2)的等份对比对分配给N3线程处理,依此类推,直至直至所有等份的对比对被分配和处理完毕,采用上述分配方式,保每个线程在任何时刻都会有处理任务运行,充分利用了浏览器的线程资源,同时也有效地提升了文件比对的处理速度。
对于比对结果的输出,若按照每一等份对比对的处理完成时间进行对比结果的输出,极易出现结果顺序颠倒的情况,对用户的使用造成不便,因此,此时采用快速排序算法的原理,在展示每个对比对的比对结果时,首先对处理结果进行收集、等待和重新排序,即按照每行文本数据的获取顺序,依次对每一对对比对进行排序,同时,按照每一等份对比对的标序,将每相邻两等份对比对划分为一组,以组为单位,待每组内两等份对比对均比对处理完成,然后按照每等份的标序顺序,对所有等份对比对的比对结果进行排序,且每等份对比对内的对比对间按照每行文本数据的获取顺序排序,保证第一行新老文件的文本数据的比对结果排在第二行新老文件的文本数据的比对结果前,第二行新老文件的文本数据的比对结果排在第三行新老文件的文本数据的比对结果前,依次类推。举例说明,如一组对比对中,按照每等份对比对的标序,其中一等份对比对的标序为1,另一等份对比对的标序为2,当标序为2的等份对比对处理完成后,需进行等待,待标序为1的等份对比对处理完成后,按照1,2的顺序进行该组中两等份对比对的排序,每一组对比对的处理为一周期,待一组对比对处理完成后,进行下一周期对比对的处理,每一组的对比对处理完成后均进行排序,然后当所有组的对比对处理完成后,进行整个排序并输出,从而保证新老文件对比结果输出顺序的正确性。
S5:JavaScript语言渲染比对结果并展示,具体的为在浏览器页面中进行展示,即当所有对比对比对处理完成后,最后由JavaScript语言来对比对进行进行渲染,并在浏览器页面输出和展示。JavaScript是一种直译式脚本语言。
本发明实施例的文件差异比较方法的原理在于,利用浏览器的多线程处理特性,将对比对划分成多个等份,并将每一等份的对比对分配给一线程处理,使浏览器的多个线程同时运行进行对比处理,将大数据量的处理工作细分为单个小工作量的处理任务,并交由单个线程进行处理,达到对浏览器资源充分利用的目的,同时也有效地提高了新老文件文本数据的比对速度,且基于当浏览器在进行比对处理任务时会阻塞渲染线程任务的考虑,待所有的文本数据比对完成后,最后由JavaScript语言对比对结果进行渲染和输出,保证比对结果在浏览器中的正常输出和展示。
对应上述文件差异比较方法,本发明实施例还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现上述各实施例中的文件差异比较方法的步骤。需要说明的是,所述存储介质包括U盘、移动硬盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
另外,参见图2所示,对应上述文件差异比较方法,本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时可实现上述各实施例中的文件差异比较方法的步骤。
本发明实施例还提供一种基于上述文件差异比较方法的文件差异比较系统,包括获取模块、划分模块、比对执行模块和展示模块。
获取模块用于按行获取新老文件的文本数据,并将获取的新老文件的文本数据按行进行对应,形成多个对比对,所述获取模块还用于获取浏览器所有未被使用的线程;划分模块用于将所有对比对均分成多个等份并标序,且每个等份含有预设对数的对比对,同时依次给获取的每一个线程分配一等份对比对;比对执行模块用于根据diff算法,进行单个线程依次对一等份对比对中的每一对对比对的文本数据的比对处理,并且当一线程对一等份中所有对比对处理完毕,则按序将还未分配的一等份的对比对分配给该线程进行处理,依此类推,直至所有等份中的对比对处理完毕;展示模块用于展示每对对比对的比对结果,具体的为在浏览器页面进行展示。
其中,新老文件的文本数据保存于文本框中,文本框中每行文本数据的末尾均含有一换行符,根据每行文本数据末尾的换行符,获取模块获取新老文件的每一行文本数据。
本发明的文件差异比较系统的原理在于,利用浏览器的多线程处理特性,划分模块将对比对划分成多个等份,并将每一等份的对比对分配给一线程处理,然后比对执行模块使浏览器的多个线程同时运行进行对比处理,即将大数据量的处理工作细分为单个小工作量的处理任务,并交由单个线程进行处理,达到对浏览器资源充分利用的目的,同时也有效地提高了新老文件文本数据的比对速度,最后由JavaScript语言对比对结果进行渲染和输出,保证比对结果在浏览器中的正常输出和展示。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种文件差异比较方法,用于在浏览器中进行新老文件的比对,其特征在于,包括:
S1:按行获取新老文件的文本数据,并将获取的新老文件的文本数据按行进行对应,形成多个对比对;
S2:获取浏览器所有未被使用的线程,同时将所有对比对均分成多个等份并标序,每个等份含有预设对数的对比对;
S3:依次给获取的每一个线程分配一等份对比对;
S4:根据diff算法,单个线程依次对一等份对比对中的每一对对比对的文本数据进行比对处理,并且当一线程对一等份中所有对比对处理完毕,按序将还未分配的一等份对比对分配给该线程进行处理,依此类推,直至所有等份中的对比对处理完毕;
S5:JavaScript语言渲染比对结果并展示。
2.如权利要求1所述的一种文件差异比较方法,其特征在于:
所述新老文件的文本数据保存于文本框中;
所述文本框中每行文本数据的末尾均含有一换行符。
3.如权利要求2所述的一种文件差异比较方法,其特征在于:根据每行文本数据末尾的换行符,获取新老文件的每一行文本数据。
4.如权利要求1所述的一种文件差异比较方法,其特征在于:
按照每行文本数据的获取顺序,依次对每一对对比对进行排序;
按照每一等份对比对的标序,将每相邻两等份对比对划分为一组。
5.如权利要求4所述的一种文件差异比较方法,其特征在于:以组为单位,待每组内两等份对比对均比对处理完成,按照每等份的标序顺序,对所有等份对比对的比对结果进行排序。
6.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至5任一项所述的方法。
7.一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1至5任一项所述的方法。
8.一种文件差异比较方法系统,其特征在于,包括:
获取模块,其用于按行获取新老文件的文本数据,并将获取的新老文件的文本数据按行进行对应,形成多个对比对,所述获取模块还用于获取浏览器所有未被使用的线程;
划分模块,其用于将所有对比对均分成多个等份并标序,且每个等份含有预设对数的对比对,同时依次给获取的每一个线程分配一等份对比对;
比对执行模块,其用于根据diff算法,进行单个线程依次对一等份对比对中的每一对对比对的文本数据的比对处理,并且当一线程对一等份中所有对比对处理完毕,则按序将还未分配的一等份的对比对分配给该线程进行处理,依此类推,直至所有等份中的对比对处理完毕;
展示模块,其用于展示每对对比对的比对结果。
9.如权利要求8所述的一种文件差异比较系统,其特征在于:
所述新老文件的文本数据保存于文本框中;
所述文本框中每行文本数据的末尾均含有一换行符。
10.如权利要求9所述的一种文件差异比较系统,其特征在于:根据每行文本数据末尾的换行符,获取模块获取新老文件的每一行文本数据。
CN201710640044.4A 2017-07-31 2017-07-31 文件差异比较方法、存储介质、电子设备及系统 Pending CN107463541A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710640044.4A CN107463541A (zh) 2017-07-31 2017-07-31 文件差异比较方法、存储介质、电子设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710640044.4A CN107463541A (zh) 2017-07-31 2017-07-31 文件差异比较方法、存储介质、电子设备及系统

Publications (1)

Publication Number Publication Date
CN107463541A true CN107463541A (zh) 2017-12-12

Family

ID=60547975

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710640044.4A Pending CN107463541A (zh) 2017-07-31 2017-07-31 文件差异比较方法、存储介质、电子设备及系统

Country Status (1)

Country Link
CN (1) CN107463541A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783454A (zh) * 2019-01-23 2019-05-21 成都易海通科技有限公司 一种超大文本文件比对方法
CN109800022A (zh) * 2019-01-25 2019-05-24 郑州云海信息技术有限公司 一种自动化对比bios信息差异的方法、系统、终端及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980168A (zh) * 2010-11-05 2011-02-23 北京云快线软件服务有限公司 一种动态分块传输方法及装置
CN103631568A (zh) * 2013-12-20 2014-03-12 厦门大学 面向医学图像的多线程并行计算方法
CN103841196A (zh) * 2014-03-07 2014-06-04 长沙裕邦软件开发有限公司 一种基于多线程的文件上传系统及方法
CN105718315A (zh) * 2016-02-17 2016-06-29 中国农业银行股份有限公司 一种任务处理方法及服务器
CN105824792A (zh) * 2016-03-18 2016-08-03 中国银联股份有限公司 文本比对方法和设备
CN106528245A (zh) * 2016-11-25 2017-03-22 广州优视网络科技有限公司 多线程下载方法和装置及计算设备
CN106897258A (zh) * 2017-02-27 2017-06-27 郑州云海信息技术有限公司 一种文本差异性的计算方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980168A (zh) * 2010-11-05 2011-02-23 北京云快线软件服务有限公司 一种动态分块传输方法及装置
CN103631568A (zh) * 2013-12-20 2014-03-12 厦门大学 面向医学图像的多线程并行计算方法
CN103841196A (zh) * 2014-03-07 2014-06-04 长沙裕邦软件开发有限公司 一种基于多线程的文件上传系统及方法
CN105718315A (zh) * 2016-02-17 2016-06-29 中国农业银行股份有限公司 一种任务处理方法及服务器
CN105824792A (zh) * 2016-03-18 2016-08-03 中国银联股份有限公司 文本比对方法和设备
CN106528245A (zh) * 2016-11-25 2017-03-22 广州优视网络科技有限公司 多线程下载方法和装置及计算设备
CN106897258A (zh) * 2017-02-27 2017-06-27 郑州云海信息技术有限公司 一种文本差异性的计算方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佚名: "diff命令", 《HOWTOING运维教程HTTP://WWW.HOWTOING.COM/BEST-LINUX-FILE-DIFF-TOOLS-COMPARRISION/》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783454A (zh) * 2019-01-23 2019-05-21 成都易海通科技有限公司 一种超大文本文件比对方法
CN109800022A (zh) * 2019-01-25 2019-05-24 郑州云海信息技术有限公司 一种自动化对比bios信息差异的方法、系统、终端及存储介质

Similar Documents

Publication Publication Date Title
US20190250778A1 (en) Generating visualizations of facet values for facets defined over a collection of objects
CN105159777B (zh) 进程的内存回收方法及装置
WO2020248356A1 (zh) 数据分箱处理方法及装置、电子设备和计算机可读介质
US10061758B2 (en) Tabular widget with mergable cells
CN105868166B (zh) 一种正则表达式的生成方法及系统
DE102014003689A1 (de) Verfolgung des kontrollflusses von befehlen
DE102010018864A1 (de) Daumen-Touch Profilsensorvorrichtung
WO2020005605A1 (en) Table detection in spreadsheet
DE112013004614T5 (de) Gestentastatur mit Gestenannullierung
CN101729590A (zh) 一种提供网页的方法、系统及装置
CN108334951A (zh) 针对决策树的节点的数据的预统计
US10796071B2 (en) Analyzing document content and generating an appendix
CN103500332B (zh) 图片内文字显示方法及装置
CN107463541A (zh) 文件差异比较方法、存储介质、电子设备及系统
CN106557571A (zh) 一种基于k‑v存储引擎的数据去重方法及装置
CN107220378A (zh) 表格排序方法和装置、web页面展示方法和装置
US9424032B2 (en) List vector processing apparatus, list vector processing method, storage medium, compiler, and information processing apparatus
CN108664249B (zh) 提高string字符串存储效率的方法、装置、电子设备及计算机可读存储介质
CN103455518A (zh) 一种数据处理方法及装置
CN108874297A (zh) 合并文件的方法、存储装置、存储设备和存储介质
CN109919324B (zh) 基于标签比例学习的迁移学习分类方法、系统及设备
GB2506614A (en) Extracting core data for a summary dump file based upon most recent trace data entries
Sailaja et al. An overview of pre-processing text clustering methods
CN103150521A (zh) 一种高性能微处理器寄存器及其内存地址弹性保护方法
CN106294431A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20171212

RJ01 Rejection of invention patent application after publication