CN111782426B - 一种处理客户端任务的方法、装置和电子设备 - Google Patents

一种处理客户端任务的方法、装置和电子设备 Download PDF

Info

Publication number
CN111782426B
CN111782426B CN202010660620.3A CN202010660620A CN111782426B CN 111782426 B CN111782426 B CN 111782426B CN 202010660620 A CN202010660620 A CN 202010660620A CN 111782426 B CN111782426 B CN 111782426B
Authority
CN
China
Prior art keywords
message processing
processing task
executing
task
information
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.)
Active
Application number
CN202010660620.3A
Other languages
English (en)
Other versions
CN111782426A (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.)
Shanghai Qiyu Information and Technology Co Ltd
Original Assignee
Shanghai Qiyu Information 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 Shanghai Qiyu Information and Technology Co Ltd filed Critical Shanghai Qiyu Information and Technology Co Ltd
Priority to CN202010660620.3A priority Critical patent/CN111782426B/zh
Publication of CN111782426A publication Critical patent/CN111782426A/zh
Application granted granted Critical
Publication of CN111782426B publication Critical patent/CN111782426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本说明书实施例提供一种处理客户端任务的方法,客户端创建主线程,主线程只执行用户操作触发的消息处理任务,同时在执行消息处理任务的开始、完成时刻向过程提取器发送开始、完成信息,从而使提取执行消息处理任务过程中的过程数据(基于接收到的开始信息和结束信息确定主线程执行消息处理任务的过程时长,并提取执行消息处理任务过程中产生的堆栈数据)可以由过程提取器来实现,继而响应于所述消息处理任务的完成便可以执行消息处理任务的附加任务。由于不需要主线程亲自提取过程数据,因而缩短了执行消息处理任务过程中开始时刻到完成时刻的时间间隔,使得附加任务能够及时执行,加快了对用户操作的反馈。

Description

一种处理客户端任务的方法、装置和电子设备
技术领域
本申请涉及计算机领域,尤其涉及一种处理客户端任务的方法、装置和电子设备。
背景技术
客户端对于用户操作的处理,多是创建主线程执行相应消息处理任务,在执行完这些任务之后,利用这些执行任务产生或者获得的数据以执行附加业务的形式对用户操作进行返回,以完成与用户的交互过程。
同时,由于业内对于优化代码的需求,现有的方式往往是在主线程的代码中植入计时函数和抓取堆栈的函数,这样,在执行消息处理任务之外,便可以抓取执行消息处理任务过程中产生的堆栈数据以及任务耗时,以便后续对任务的耗时分布进行分析,进而分析有没有进一步优化的可能。
然而,由于计时和抓取堆栈的过程也需要消耗一定的时间,因而导致无法及时执行附加任务,因此,如果能够提出一种新的方法,使得附加任务能够及时进行,将会加快对用户操作进行反馈的过程,提升用户体验。
发明内容
本说明书实施例提供一种处理客户端任务的方法、装置和电子设备,用以提升执行用户操作对应的附加任务的及时性,加快反馈过程。
本说明书实施例提供一种处理客户端任务的方法,包括:
客户端创建主线程,通过所述主线程执行用户操作触发的消息处理任务,并在执行所述消息处理任务的开始时刻向过程提取器发送开始信息,在执行所述消息处理任务的完成时刻向所述过程提取器发送结束信息;
提取执行所述消息处理任务过程中的过程数据:基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,并提取执行所述消息处理任务过程中产生的堆栈数据;
响应于所述消息处理任务的完成执行所述消息处理任务的附加任务。
可选的,还包括:
创建过程提取器,所述过程提取器用于提取执行所述消息处理任务过程中的过程数据;
所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,包括:
在接收到所述开始信息时开始对所述主线程当前执行的消息处理任务进行计时,确定接收到所述结束信息时的计时得到的时长。
可选的,所述通过所述主线程执行用户操作触发的消息处理任务,并在执行所述消息处理任务的开始时刻向过程提取器发送开始信息,包括:
利用多核处理器的第一处理单元分配的时间片,通过所述主线程执行用户操作触发的消息处理任务,并在执行消息处理任务的开始时刻向过程提取器发送开始信息;
所述提取执行所述消息处理任务过程中的过程数据,包括:
利用所述多核处理器的第二处理单元分配的时间片在执行所述消息处理任务的同时并行提取执行所述消息处理任务过程中的过程数据。
可选的,所述响应于所述消息处理任务的完成执行所述消息处理任务的附加任务,包括:
响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染。
可选的,所述通过所述主线程执行用户操作触发的消息处理任务,包括:
监听用户操作,响应于用户操作执行用户操作所触发的事件模型中的消息处理任务,所述事件模型中还具有页面渲染任务;
所述响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染,包括:
响应于所述消息处理任务的完成,执行所述页面渲染任务:利用执行所述消息处理任务产生的数据进行页面渲染。
可选的,所述执行用户操作所触发的事件模型中的消息处理任务,包括:
向服务器发送页面请求,获取服务器发送的页面信息,所述页面信息用于进行页面渲染。
可选的,所述消息处理任务具有多个处理函数;
所述在执行消息处理任务的开始时刻向过程提取器发送开始信息,在执行消息处理任务的完成时刻向所述过程提取器发送结束信息,包括:
在执行每个处理函数的开始时刻向过程提取器发送开始信息,在执行每个处理函数的完成时刻向所述过程提取器发送结束信息;
所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,并提取执行所述消息处理任务过程中产生的堆栈数据,包括:
基于接收到的所述开始信息和所述结束信息确定所述主线程执行各处理函数的过程时长,并提取执行各处理函数过程中产生的堆栈数据。
可选的,所述用户操作触发了多个消息处理任务;
所述提取执行所述消息处理任务过程中的过程数据,包括:
以并发或者并行的方式提取执行各消息处理任务过程中的过程数据。
本说明书实施例还提供一种处理客户端任务的装置,包括:
消息处理任务模块,客户端创建主线程,通过所述主线程执行用户操作触发的消息处理任务,并在执行所述消息处理任务的开始时刻向过程提取器发送开始信息,在执行所述消息处理任务的完成时刻向所述过程提取器发送结束信息;
提取模块,提取执行所述消息处理任务过程中的过程数据:基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,并提取执行所述消息处理任务过程中产生的堆栈数据;
所述消息处理任务模块,还用于响应于所述消息处理任务的完成执行所述消息处理任务的附加任务。
可选的,所述提取模块,还用于:
创建过程提取器,所述过程提取器用于提取执行所述消息处理任务过程中的过程数据;
所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,包括:
在接收到所述开始信息时开始对所述主线程当前执行的消息处理任务进行计时,确定接收到所述结束信息时的计时得到的时长。
可选的,所述通过所述主线程执行用户操作触发的消息处理任务,并在执行所述消息处理任务的开始时刻向过程提取器发送开始信息,包括:
利用多核处理器的第一处理单元分配的时间片,通过所述主线程执行用户操作触发的消息处理任务,并在执行消息处理任务的开始时刻向过程提取器发送开始信息;
所述提取执行所述消息处理任务过程中的过程数据,包括:
利用所述多核处理器的第二处理单元分配的时间片在执行所述消息处理任务的同时并行提取执行所述消息处理任务过程中的过程数据。
可选的,所述响应于所述消息处理任务的完成执行所述消息处理任务的附加任务,包括:
响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染。
可选的,所述通过所述主线程执行用户操作触发的消息处理任务,包括:
监听用户操作,响应于用户操作执行用户操作所触发的事件模型中的消息处理任务,所述事件模型中还具有页面渲染任务;
所述响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染,包括:
响应于所述消息处理任务的完成,执行所述页面渲染任务:利用执行所述消息处理任务产生的数据进行页面渲染。
可选的,所述执行用户操作所触发的事件模型中的消息处理任务,包括:
向服务器发送页面请求,获取服务器发送的页面信息,所述页面信息用于进行页面渲染。
可选的,所述消息处理任务具有多个处理函数;
所述在执行消息处理任务的开始时刻向过程提取器发送开始信息,在执行消息处理任务的完成时刻向所述过程提取器发送结束信息,包括:
在执行每个处理函数的开始时刻向过程提取器发送开始信息,在执行每个处理函数的完成时刻向所述过程提取器发送结束信息;
所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,并提取执行所述消息处理任务过程中产生的堆栈数据,包括:
基于接收到的所述开始信息和所述结束信息确定所述主线程执行各处理函数的过程时长,并提取执行各处理函数过程中产生的堆栈数据。
可选的,所述用户操作触发了多个消息处理任务;
所述提取执行所述消息处理任务过程中的过程数据,包括:
以并发或者并行的方式提取执行各消息处理任务过程中的过程数据。
本说明书实施例还提供一种电子设备,其中,该电子设备包括:
处理器;以及,
存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行上述任一项方法。
本说明书实施例还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现上述任一项方法。
本说明书实施例提供的各种技术方案中,客户端创建主线程,主线程只执行用户操作触发的消息处理任务,同时在执行消息处理任务的开始、完成时刻向过程提取器发送开始、完成信息,从而使提取执行消息处理任务过程中的过程数据(基于接收到的开始信息和结束信息确定主线程执行消息处理任务的过程时长,并提取执行消息处理任务过程中产生的堆栈数据)可以由过程提取器来实现,继而响应于所述消息处理任务的完成便可以执行消息处理任务的附加任务。由于不需要主线程亲自提取过程数据,因而缩短了执行消息处理任务过程中开始时刻到完成时刻的时间间隔,使得附加任务能够及时执行,加快了对用户操作的反馈。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例提供的一种处理客户端任务的方法的原理示意图;
图2为本说明书实施例提供的一种处理客户端任务的装置的结构示意图;
图3为本说明书实施例提供的一种电子设备的结构示意图;
图4为本说明书实施例提供的一种计算机可读介质的原理示意图。
具体实施方式
现在将参考附图更全面地描述本发明的示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例能够使得本发明更加全面和完整,更加便于将发明构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的元件、组件或部分,因而将省略对它们的重复描述。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的特征、结构、特性或其他细节不排除可以以合适的方式结合在一个或更多其他的实施例中。
在对于具体实施例的描述中,本发明描述的特征、结构、特性或其他细节是为了使本领域的技术人员对实施例进行充分理解。但是,并不排除本领域技术人员可以实践本发明的技术方案而没有特定特征、结构、特性或其他细节的一个或更多。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
术语“和/或”或者“及/或”包括相关联的列出项目中的任一个或多者的所有组合。
图1为本说明书实施例提供的一种处理客户端任务的方法的原理示意图,该方法可以包括:
S101:客户端创建主线程,通过所述主线程执行用户操作触发的消息处理任务,并在执行所述消息处理任务的开始时刻向过程提取器发送开始信息,在执行所述消息处理任务的完成时刻向所述过程提取器发送结束信息。
在本说明书实施例中,过程提取器用于提取执行所述消息处理任务过程中的过程数据,具体形式可以是执行消息处理任务的主线程之外的进程,或者进程中的子线程等形式,由于过程提取器不需要与主线程执行消息处理任务竞争CPU时间片,因而缩短了执行消息处理任务过程中开始时刻到完成时刻的时间间隔。
其具体原理是,由于计算机CPU的运行速度远高于用户操作的速度,因而,CPU对于多任务的处理,往往是将每个任务划分为多个片段,为每个任务片段分配时间片,在时间维度上,交替间隔执行各任务的片段,宏观上,便会形成CPU同时处理多任务的效果,这种多任务在微观上串行执行在宏观上同时执行的效果在计算机原理中被称作并发。
而恰好,提取执行所述消息处理任务过程中的过程数据时,需要与执行消息处理任务交替间隔执行,因而,现有技术中,执行消息处理任务过程中开始时刻到完成时刻的时间间隔,实际上大于执行消息处理任务的各时间片段之和,大于的这部分,就是提取过程数据所消耗的CPU时间片。
之所以让提取过程数据与执行消息处理任务交替间隔执行,是因为执行消息处理任务需要利用到内存堆栈,而执行消息处理任务时,会涉及到很多数据在内存堆栈中写入和删除,在执行消息处理任务后,内存堆栈中只会保留任务执行结果相关的数据,因此,只有在执行消息处理任务时,每当产生堆栈数据后,便提取堆栈数据并保存,在保存完这些数据之后,再执行消息处理任务的下一阶段,才能避免尚未完成提取堆栈数据时,这些数据已经被消息处理任务下一阶段删除或者修改。这也是为什么,没有人会在执行完整个消息处理任务再去提取堆栈数据的原因,因为,执行完整个消息处理任务后,堆栈数据中已经失去了很多计算过程中的数据(可以理解为中间数据)。
为了保证提取堆栈数据时的完整,也是为了避免提取该消息处理任务之外的任务产生的堆栈数据,可以在接收到消息处理任务的完成信息时在内存堆栈中设置结束标志位。
因而,如果想缩短执行消息处理任务过程中开始时刻到完成时刻的时间间隔,需要将二者(过程数据的提取与消息处理任务的执行)相并行(微观并行)。
基于此构思,我们创建能够与主线程并行执行任务的过程提取器。
因此,该方法还包括:
创建过程提取器。
这样,所述通过所述主线程执行用户操作触发的消息处理任务,并在执行所述消息处理任务的开始时刻向过程提取器发送开始信息,包括:
利用多核处理器的第一处理单元分配的时间片,通过所述主线程执行用户操作触发的消息处理任务,并在所述执行消息处理任务的开始时刻向过程提取器发送开始信息。
这样,我们便可以利用多核处理器的并行执行任务的特点,通过单独的处理单元(可以理解为多核中的一个核)为执行用户操作触发的消息处理任务的主线程分配时间片,这样,执行消息处理任务过程中便不再穿插为了提取过程数据而分配的时间片,从而缩短了执行消息处理任务过程中开始时刻到完成时刻的时间间隔。
对于过程提取器提取执行所述消息处理任务过程中的过程数据的功能实现,我们将在S102中展开。
对于客户端与用户的交互,我们可以利用事件模型来实现,事件模型的逻辑实际上是对每种事件进行监测-触发-执行事件对应的任务-重新进行页面渲染实现交互。
这里的事件,可以是用户的操作行为事件,也可以是浏览器的行为事件(比如监测到页面的展示超过一定时长)。
在本说明书实施例中,以用户操作为例,所述通过所述主线程执行用户操作触发的消息处理任务,可以包括:
监听用户操作,响应于用户操作执行用户操作所触发的事件模型中的消息处理任务,所述事件模型中还具有页面渲染任务。
这里的页面渲染任务,便是消息处理任务的附加任务的一种,当然,附加任务也可以是其他形式,比如,根据消息处理任务的处理结果播放音频等,在此不做具体阐述和限制,只要是某个任务的执行需要依赖于消息处理任务的完成,甚至需要利用到执行消息处理任务所产生的数据,这种任务都应当在本申请的保护范围之内,在此不做详细举例。
在本说明书实施例中,消息处理任务的执行,可能依赖于客户端之外的外界系统,比如,服务器,在一种具体的应用场景中,所述执行用户操作所触发的事件模型中的消息处理任务,可以包括:
向服务器发送页面请求,获取服务器发送的页面信息,所述页面信息用于进行页面渲染。
由于对于代码的分析往往会深入到函数层次,而一个任务的执行,往往会涉及到多个函数的复杂组合,因此,所述消息处理任务可以具有多个处理函数。
那么,后续,我们便可以针对每个处理函数,都提取其过程数据,以便后续进行耗时分析,代码优化,从而压缩耗时。
S102:提取执行所述消息处理任务过程中的过程数据:基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,并提取执行所述消息处理任务过程中产生的堆栈数据。
通过提取执行所述消息处理任务过程中的过程数据,使得后续能够重现处理消息处理任务的过程,方便分析该过程的数据处理和耗时。
提取执行所述消息处理任务过程中产生的堆栈数据后,可以保存堆栈数据。
所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,包括:
在接收到所述开始信息时开始对所述主线程当前执行的消息处理任务进行计时,确定接收到所述结束信息时的计时得到的时长。
如果S101中,所述通过所述主线程执行用户操作触发的消息处理任务,并在执行所述消息处理任务的开始时刻向过程提取器发送开始信息,包括:
利用多核处理器的第一处理单元分配的时间片,通过所述主线程执行用户操作触发的消息处理任务,并在所述执行消息处理任务的开始时刻向过程提取器发送开始信息;
那么,所述提取执行所述消息处理任务过程中的过程数据,可以包括:
利用所述多核处理器的第二处理单元分配的时间片在执行所述消息处理任务的同时并行提取执行所述消息处理任务过程中的过程数据。
这样,由于提取过程数据不需要第一处理单元为其分配时间片,因而可以实现与消息处理任务并行执行,相比与多任务运行于单核中的方案,缩短了执行消息处理任务的耗时。
S103:响应于所述消息处理任务的完成执行所述消息处理任务的附加任务。
客户端创建主线程,主线程只执行用户操作触发的消息处理任务,同时在执行消息处理任务的开始、完成时刻向过程提取器发送开始、完成信息,从而使提取执行消息处理任务过程中的过程数据(基于接收到的开始信息和结束信息确定主线程执行消息处理任务的过程时长,并提取执行消息处理任务过程中产生的堆栈数据)可以由过程提取器来实现,继而响应于所述消息处理任务的完成便可以执行消息处理任务的附加任务。由于不需要主线程亲自提取过程数据,因而缩短了执行消息处理任务过程中开始时刻到完成时刻的时间间隔,使得附加任务能够及时执行,加快了对用户操作的反馈。
此外,由于不需要在消息处理任务中插入耗时函数,以及堆栈抓取函数,因而对原业务功能的代码侵入性小。
对于附加任务是渲染页面来说,所述响应于所述消息处理任务的完成执行所述消息处理任务的附加任务,可以包括:
响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染。
可选的,如果S101中所述通过所述主线程执行用户操作触发的消息处理任务,包括:
监听用户操作,响应于用户操作执行用户操作所触发的事件模型中的消息处理任务,所述事件模型中还具有页面渲染任务;
那么,所述响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染,可以包括:
响应于所述消息处理任务的完成,执行所述页面渲染任务:利用执行所述消息处理任务产生的数据进行页面渲染。
在本说明书实施例中,对于消息处理任务具有多个处理函数的情况;
所述在执行消息处理任务的开始时刻向过程提取器发送开始信息,在执行消息处理任务的完成时刻向所述过程提取器发送结束信息,可以包括:
在执行每个处理函数的开始时刻向过程提取器发送开始信息,在执行每个处理函数的完成时刻向所述过程提取器发送结束信息;
所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,并提取执行所述消息处理任务过程中产生的堆栈数据,包括:
基于接收到的所述开始信息和所述结束信息确定所述主线程执行各处理函数的过程时长,并提取执行各处理函数过程中产生的堆栈数据。
这样,便可以对每一个函数的产生的数据和实际产生的耗时进行分析,从而从函数的层次对代码进行优化。
应当说明的是,上述实施例中的过程提取器,可以不依赖于单个主线程,也就是说,如果客户端创建了多个主线程,那么,过程提取器可以为这多个主线程执行的消息处理任务进行过程数据的提取,而对于过程提取器和这些主线程的数据通信,可以通过进程间通信的放那个是来实现,当然,也可以让过程提取器与主线程实现内存共享,使过程提取器直接从主线程的运行内存中获取开始信息和结束信息。
而对于过程提取器可以为这多个主线程执行的消息处理任务进行过程数据的提取,实际上是执行多个同类任务,这多个任务之间,可以以并发的方式来实现,也可以以并行的方式来实现,考虑到用户对客户端同时反馈多个操作的情况较少,因此,在未来,并发的方式可能较为常用。
因此,如果所述用户操作触发了多个消息处理任务;
那么所述提取执行所述消息处理任务过程中的过程数据,可以包括:
以并发或者并行的方式提取执行各消息处理任务过程中的过程数据。
图2为本说明书实施例提供的一种处理客户端任务的装置的结构示意图,该装置可以包括:
消息处理任务模块201,客户端创建主线程,通过所述主线程执行用户操作触发的消息处理任务,并在执行所述消息处理任务的开始时刻向过程提取器发送开始信息,在执行所述消息处理任务的完成时刻向所述过程提取器发送结束信息;
提取模块202,提取执行所述消息处理任务过程中的过程数据:基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,并提取执行所述消息处理任务过程中产生的堆栈数据;
消息处理任务模块201,响应于所述消息处理任务的完成执行所述消息处理任务的附加任务。
可选的,所述提取模块,还用于:
创建过程提取器,所述过程提取器用于提取执行所述消息处理任务过程中的过程数据;
所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,包括:
在接收到所述开始信息时开始对所述主线程当前执行的消息处理任务进行计时,确定接收到所述结束信息时的计时得到的时长。
可选的,所述通过所述主线程执行用户操作触发的消息处理任务,并在执行所述消息处理任务的开始时刻向过程提取器发送开始信息,包括:
利用多核处理器的第一处理单元分配的时间片,通过所述主线程执行用户操作触发的消息处理任务,并在执行消息处理任务的开始时刻向过程提取器发送开始信息;
所述提取执行所述消息处理任务过程中的过程数据,包括:
利用所述多核处理器的第二处理单元分配的时间片在执行所述消息处理任务的同时并行提取执行所述消息处理任务过程中的过程数据。
可选的,所述响应于所述消息处理任务的完成执行所述消息处理任务的附加任务,包括:
响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染。
可选的,所述通过所述主线程执行用户操作触发的消息处理任务,包括:
监听用户操作,响应于用户操作执行用户操作所触发的事件模型中的消息处理任务,所述事件模型中还具有页面渲染任务;
所述响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染,包括:
响应于所述消息处理任务的完成,执行所述页面渲染任务:利用执行所述消息处理任务产生的数据进行页面渲染。
可选的,所述执行用户操作所触发的事件模型中的消息处理任务,包括:
向服务器发送页面请求,获取服务器发送的页面信息,所述页面信息用于进行页面渲染。
可选的,所述消息处理任务具有多个处理函数;
所述在执行消息处理任务的开始时刻向过程提取器发送开始信息,在执行消息处理任务的完成时刻向所述过程提取器发送结束信息,包括:
在执行每个处理函数的开始时刻向过程提取器发送开始信息,在执行每个处理函数的完成时刻向所述过程提取器发送结束信息;
所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,并提取执行所述消息处理任务过程中产生的堆栈数据,包括:
基于接收到的所述开始信息和所述结束信息确定所述主线程执行各处理函数的过程时长,并提取执行各处理函数过程中产生的堆栈数据。
可选的,所述用户操作触发了多个消息处理任务;
所述提取执行所述消息处理任务过程中的过程数据,包括:
以并发或者并行的方式提取执行各消息处理任务过程中的过程数据。
该装置中客户端创建主线程,主线程只执行用户操作触发的消息处理任务,同时在执行消息处理任务的开始、完成时刻向过程提取器发送开始、完成信息,从而使提取执行消息处理任务过程中的过程数据(基于接收到的开始信息和结束信息确定主线程执行消息处理任务的过程时长,并提取执行消息处理任务过程中产生的堆栈数据)可以由提取模块形成的过程提取器来实现,继而响应于所述消息处理任务的完成便可以执行消息处理任务的附加任务。由于不需要主线程亲自提取过程数据,因而缩短了执行消息处理任务过程中开始时刻到完成时刻的时间间隔,使得附加任务能够及时执行,加快了对用户操作的反馈。
基于同一发明构思,本说明书实施例还提供一种电子设备。
下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的具体实体实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
图3为本说明书实施例提供的一种电子设备的结构示意图。下面参照图3来描述根据本发明该实施例的电子设备300。图3显示的电子设备300仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,电子设备300以通用计算设备的形式表现。电子设备300的组件可以包括但不限于:至少一个处理单元310、至少一个存储单元320、连接不同系统组件(包括存储单元320和处理单元310)的总线330、显示单元340等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元310执行,使得所述处理单元310执行本说明书上述处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元310可以执行如图1所示的步骤。
所述存储单元320可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)3201和/或高速缓存存储单元3202,还可以进一步包括只读存储单元(ROM)3203。
所述存储单元320还可以包括具有一组(至少一个)程序模块3205的程序/实用工具3204,这样的程序模块3205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线330可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备300也可以与一个或多个外部设备400(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备300交互的设备通信,和/或与使得该电子设备300能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口350进行。并且,电子设备300还可以通过网络适配器360与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器360可以通过总线330与电子设备300的其它模块通信。应当明白,尽管图3中未示出,可以结合电子设备300使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。当所述计算机程序被一个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:如图1所示的方法。
图4为本说明书实施例提供的一种计算机可读介质的原理示意图。
实现图1所示方法的计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本发明可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)等通用数据处理设备来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (16)

1.一种处理客户端任务的方法,其特征在于,包括:
客户端创建主线程,利用多核处理器的第一处理单元分配的时间片,通过所述主线程执行用户操作触发的消息处理任务,并在执行所述消息处理任务的开始时刻向过程提取器发送开始信息,在执行所述消息处理任务的完成时刻向所述过程提取器发送结束信息;所述过程提取器用于提取执行所述消息处理任务过程中的过程数据;
所述过程提取器提取执行所述消息处理任务过程中的过程数据,包括:基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,利用所述多核处理器的第二处理单元分配的时间片在执行所述消息处理任务的同时并行提取执行所述消息处理任务过程中产生的堆栈数据;
响应于所述消息处理任务的完成执行所述消息处理任务的附加任务。
2.根据权利要求1所述的方法,其特征在于,所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,包括:
在接收到所述开始信息时开始对所述主线程当前执行的消息处理任务进行计时,确定接收到所述结束信息时的计时得到的时长。
3.根据权利要求1所述的方法,其特征在于,所述响应于所述消息处理任务的完成执行所述消息处理任务的附加任务,包括:
响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染。
4.根据权利要求3所述的方法,其特征在于,所述通过所述主线程执行用户操作触发的消息处理任务,包括:
监听用户操作,响应于用户操作执行用户操作所触发的事件模型中的消息处理任务,所述事件模型中还具有页面渲染任务;
所述响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染,包括:
响应于所述消息处理任务的完成,执行所述页面渲染任务:利用执行所述消息处理任务产生的数据进行页面渲染。
5.根据权利要求4所述的方法,其特征在于,所述执行用户操作所触发的事件模型中的消息处理任务,包括:
向服务器发送页面请求,获取服务器发送的页面信息,所述页面信息用于进行页面渲染。
6.根据权利要求1所述的方法,其特征在于,所述消息处理任务具有多个处理函数;
所述在执行消息处理任务的开始时刻向过程提取器发送开始信息,在执行消息处理任务的完成时刻向所述过程提取器发送结束信息,包括:
在执行每个处理函数的开始时刻向过程提取器发送开始信息,在执行每个处理函数的完成时刻向所述过程提取器发送结束信息;
所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,并提取执行所述消息处理任务过程中产生的堆栈数据,包括:
基于接收到的所述开始信息和所述结束信息确定所述主线程执行各处理函数的过程时长,并提取执行各处理函数过程中产生的堆栈数据。
7.根据权利要求1所述的方法,其特征在于,所述用户操作触发了多个消息处理任务;
所述提取执行所述消息处理任务过程中的过程数据,包括:
以并发或者并行的方式提取执行各消息处理任务过程中的过程数据。
8.一种处理客户端任务的装置,其特征在于,包括:
消息处理任务模块,客户端创建主线程,利用多核处理器的第一处理单元分配的时间片,通过所述主线程执行用户操作触发的消息处理任务,并在执行所述消息处理任务的开始时刻向所述过程提取器发送开始信息,在执行所述消息处理任务的完成时刻向所述过程提取器发送结束信息;所述过程提取器用于提取执行所述消息处理任务过程中的过程数据;
提取模块,创建过程提取器,所述过程提取器提取执行所述消息处理任务过程中的过程数据,包括:基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,利用所述多核处理器的第二处理单元分配的时间片在执行所述消息处理任务的同时并行提取执行所述消息处理任务过程中产生的堆栈数据;
响应于所述消息处理任务的完成执行所述消息处理任务的附加任务。
9.根据权利要求8所述的装置,其特征在于,所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,包括:
在接收到所述开始信息时开始对所述主线程当前执行的消息处理任务进行计时,确定接收到所述结束信息时的计时得到的时长。
10.根据权利要求8所述的装置,其特征在于,所述响应于所述消息处理任务的完成执行所述消息处理任务的附加任务,包括:
响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染。
11.根据权利要求10所述的装置,其特征在于,所述通过所述主线程执行用户操作触发的消息处理任务,包括:
监听用户操作,响应于用户操作执行用户操作所触发的事件模型中的消息处理任务,所述事件模型中还具有页面渲染任务;
所述响应于所述消息处理任务的完成,利用执行所述消息处理任务产生的数据进行页面渲染,包括:
响应于所述消息处理任务的完成,执行所述页面渲染任务:利用执行所述消息处理任务产生的数据进行页面渲染。
12.根据权利要求11所述的装置,其特征在于,所述执行用户操作所触发的事件模型中的消息处理任务,包括:
向服务器发送页面请求,获取服务器发送的页面信息,所述页面信息用于进行页面渲染。
13.根据权利要求8所述的装置,其特征在于,所述消息处理任务具有多个处理函数;
所述在执行所述消息处理任务的开始时刻向过程提取器发送开始信息,在执行消息处理任务的完成时刻向所述过程提取器发送结束信息,包括:
在执行每个处理函数的开始时刻向过程提取器发送开始信息,在执行每个处理函数的完成时刻向所述过程提取器发送结束信息;
所述基于接收到的所述开始信息和所述结束信息确定所述主线程执行所述消息处理任务的过程时长,并提取执行所述消息处理任务过程中产生的堆栈数据,包括:
基于接收到的所述开始信息和所述结束信息确定所述主线程执行各处理函数的过程时长,并提取执行各处理函数过程中产生的堆栈数据。
14.根据权利要求8所述的装置,其特征在于,所述用户操作触发了多个消息处理任务;
所述提取执行所述消息处理任务过程中的过程数据,包括:
以并发或者并行的方式提取执行各消息处理任务过程中的过程数据。
15.一种电子设备,其中,该电子设备包括:
处理器;以及,
存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现权利要求1-7中任一项所述的方法。
CN202010660620.3A 2020-07-10 2020-07-10 一种处理客户端任务的方法、装置和电子设备 Active CN111782426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010660620.3A CN111782426B (zh) 2020-07-10 2020-07-10 一种处理客户端任务的方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010660620.3A CN111782426B (zh) 2020-07-10 2020-07-10 一种处理客户端任务的方法、装置和电子设备

Publications (2)

Publication Number Publication Date
CN111782426A CN111782426A (zh) 2020-10-16
CN111782426B true CN111782426B (zh) 2023-09-22

Family

ID=72767049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010660620.3A Active CN111782426B (zh) 2020-07-10 2020-07-10 一种处理客户端任务的方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN111782426B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106354512A (zh) * 2016-09-08 2017-01-25 广州华多网络科技有限公司 用户界面渲染方法及装置
CN109784054A (zh) * 2018-12-29 2019-05-21 360企业安全技术(珠海)有限公司 行为堆栈信息获取方法及装置
WO2019095873A1 (zh) * 2017-11-20 2019-05-23 上海寒武纪信息科技有限公司 任务并行处理方法、装置、系统、存储介质及计算机设备
CN110187958A (zh) * 2019-06-04 2019-08-30 上海燧原智能科技有限公司 一种任务处理方法、装置、系统、设备及存储介质
CN111382026A (zh) * 2018-12-28 2020-07-07 广州市百果园信息技术有限公司 卡顿监控方法、装置、系统、存储介质和计算机设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156476B2 (en) * 2008-06-10 2012-04-10 Microsoft Corporation Debugging support for tasks in multithreaded environments
US9477515B2 (en) * 2009-12-15 2016-10-25 Intel Corporation Handling operating system (OS) transitions in an unbounded transactional memory (UTM) mode
US10520110B2 (en) * 2016-10-10 2019-12-31 Citrix Systems, Inc. Systems and methods for executing cryptographic operations across different types of processing hardware

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106354512A (zh) * 2016-09-08 2017-01-25 广州华多网络科技有限公司 用户界面渲染方法及装置
WO2019095873A1 (zh) * 2017-11-20 2019-05-23 上海寒武纪信息科技有限公司 任务并行处理方法、装置、系统、存储介质及计算机设备
CN111382026A (zh) * 2018-12-28 2020-07-07 广州市百果园信息技术有限公司 卡顿监控方法、装置、系统、存储介质和计算机设备
CN109784054A (zh) * 2018-12-29 2019-05-21 360企业安全技术(珠海)有限公司 行为堆栈信息获取方法及装置
CN110187958A (zh) * 2019-06-04 2019-08-30 上海燧原智能科技有限公司 一种任务处理方法、装置、系统、设备及存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
An improved method for mapping cerebrovascular reserve using concurrent fMRI and near-infrared spectroscopy with Regressor Interpolation at Progressive Time Delays (RIPTiDe);Yunjie Tong and Peter R. Bergethon and Blaise deB. Frederick;NeuroImage;第56卷(第4期);全文 *
Large Time Asymptotics of Growth Models on Space-like Paths II: PNG and Parallel TASEP;Alexei Borodin;Patrik L. FerrariTomohiro Sasamoto;Communications in Mathematical Physics;第283卷(第2期);全文 *
基于Web管理的Embedded Web Server研究与实现;韩光洁, 王金东, 林涛, 赵海;东北大学学报(自然科学版)(第11期);全文 *
多线程在数据采集处理中的应用;裴志英;杨国安;;计算机与现代化(第07期);全文 *

Also Published As

Publication number Publication date
CN111782426A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN107885762B (zh) 智能大数据系统、提供智能大数据服务的方法和设备
CN110807067B (zh) 关系型数据库和数据仓库的数据同步方法、装置及设备
CN112015713A (zh) 数据库任务的处理方法、装置、电子设备及可读介质
CN109032796B (zh) 一种数据处理方法和装置
CN111679911B (zh) 云环境中gpu卡的管理方法、装置、设备及介质
CN115525292A (zh) 低代码开发方法及装置、可读存储介质、电子设备
CN113127057B (zh) 多任务并行执行的方法和装置
CN112612850A (zh) 数据同步方法及装置
CN111917814A (zh) 数据发布、订阅方法、装置、设备、系统及可读存储介质
CN117271122A (zh) 基于cpu和gpu分离的任务处理方法、装置、设备及存储介质
CN111782426B (zh) 一种处理客户端任务的方法、装置和电子设备
CN116521639A (zh) 一种日志数据的处理方法、电子设备和计算机可读介质
CN111681032A (zh) 一种配置附加资源的方法、装置和电子设备
CN111401979A (zh) 分布式信息采集方法以及装置
CN115934291A (zh) 一种任务执行方法、装置、电子设备及存储介质
CN115114247A (zh) 文件数据处理方法及装置
CN114579405A (zh) 数据处理方法、数据处理装置、电子设备和存储介质
CN117093335A (zh) 分布式存储系统的任务调度方法及装置
CN113986097A (zh) 一种任务调度的方法、装置及电子设备
CN111190725B (zh) 任务处理方法、装置、存储介质及服务器
CN113986569A (zh) 一种消息处理方法、装置和电子设备
CN110231983B (zh) 数据并发处理方法、装置及系统、计算机设备及可读介质
CN113407331A (zh) 一种任务处理的方法、装置及存储介质
CN111950770A (zh) 一种管理资源返还辅助策略的方法、装置和电子设备
CN113760920A (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