【技术实现步骤摘要】
一种异步处理fsync的方法及移动终端
本专利技术属于计算机
,尤其涉及一种异步处理fsync的方法及移动终端。
技术介绍
随着智能手机的普及,用户对手机的细节优化和体验要求越来越高,比较在意慢卡顿问题,不能容忍应用存在UI(用户界面)卡顿问题。对于交互型或事务记录型的应用,其大多会采用数据库来管理记录条目。对于提供事务支持的数据库,在事务提交时,都要确保事务日志(包含该事务所有的修改操作以及一个提交记录)完全写到硬件存储设备上,才认定事务提交成功并返回给应用层。为确保数据同步到硬件存储上,应用会调用Posix标准的接口fsync/fdatasync(同步内存数据到存储盘的接口函数,下文简写为“fsync”)来保证。而一些应用每记录一条数据,可能会执行十几次fsync,当系统IO(输入输出)负荷较大时,这些频繁的fsync同步等待需要排队执行,fsync无法及时同步数据并返回,如果有UI操作依赖fsync返回的情况,就存在造成上层UI卡顿的问题。针对频繁fsync可能造成上层UI卡顿的问题,一般有两种解决方法,描述如下:1.上层应用依赖数据库的优化来减少频繁 ...
【技术保护点】
一种异步处理fsync的方法,应用于移动终端,其特征在于,包括:接收上层应用发送的fsync请求,同时将所述fsync请求直接返回给所述上层应用;将所述接收到的fsync请求的参数信息填充到一个包含回调函数的任务中,并将所述任务放入任务队列,异步处理所述fsync请求;根据所述任务队列中任务的个数,动态调用线程池中的线程并发处理所述任务;根据所述fsync请求的参数信息执行所述任务中的fsync请求,并根据所述回调函数将执行结果返回到所述上层应用。
【技术特征摘要】
1.一种异步处理fsync的方法,应用于移动终端,其特征在于,包括:接收上层应用发送的fsync请求,同时将所述fsync请求直接返回给所述上层应用;将所述接收到的fsync请求的参数信息填充到一个包含回调函数的任务中,并将所述任务放入任务队列,异步处理所述fsync请求;根据所述任务队列中任务的个数,动态调用线程池中的线程并发处理所述任务;根据所述fsync请求的参数信息执行所述任务中的fsync请求,并根据所述回调函数将执行结果返回到所述上层应用。2.根据权利要求1所述的方法,其特征在于,所述接收上层应用发送的fsync请求,同时将所述fsync请求直接返回给所述上层应用的步骤之后,以及所述根据所述回调函数将执行结果返回到所述上层应用的步骤之后,还包括:所述接收上层应用发送的fsync请求,同时将所述fsync请求直接返回给所述上层应用的步骤之后,包括:调用fget接口函数对所述fsync请求的file进行引用;所述根据所述回调函数将执行结果返回到所述上层应用的步骤之后,包括:调用fput对所述fsync请求的file解引用,释放所述file。3.根据权利要求1所述的方法,其特征在于,所述将所述接收到的fsync请求的参数信息填充到一个包含回调函数的任务中,并将所述任务放入任务队列,异步处理所述fsync请求之前,还包括:创建一全局链表;将所述接收到的fsync请求挂入所述链表;当所述链表中所述fsync请求的数量达到预设阈值时,暂停所述fsync请求的挂入,对所述fsync请求作同步处理。4.根据权...
【专利技术属性】
技术研发人员:刘亚美,
申请(专利权)人:维沃移动通信有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。