首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 导出任务耗时怎么优化?

    大量数据的导入导出时,请求一定非常耗时,页面一定会不停转圈圈,不可能让用户一直停留在这个页面转圈圈,这样并不友好。 比较好的方式就事通过异步的方式,先提交任务,然后通过线程的处理数据。 大量数据查询拆分成批量任务查询 导出数据可能会导出大量数据,通常情况下,一次性查询大量数据导致负载压力的原因是在一次查询中同时检索了太多数据,并在内存中进行处理,这会占用大量系统资源,造成系统响应变慢和崩溃等问题 ); PageQueryBean<T> result = function.apply(pageParam); logger.keyword("分页批次任务 ,分页批次任务:{},获取总记录数:{},总耗时:{}秒", current, results.size(), stopWatch.getTotalTimeSeconds()); return ,总耗时:{}秒", stopWatch.getTotalTimeSeconds()); } }

    40610编辑于 2024-07-30
  • 来自专栏IMWeb前端团队

    如果被耗时任务拖累,可能是姿势不对

    如果被耗时任务拖累,可能是姿势不对 在业务中,有时候需要处理一些相对耗时的事情,而且还有一些其他的逻辑还可能会依赖这个耗时任务。诚然,太久的耗时会对用户体验不好。 客户端的 getLocation 接口去获取用户当前地理位置,其实是非常耗时的操作。 除了客户端的接口会耗时之外,还需要调用一次后台CGI,由于这个CGI接口已经在现网运行过一段时间,从检测的数据来说,wifi下请求一次耗时大概在 50ms ~ 150ms 左右,如果在非wifi场景下 ,这个时间肯定会更耗时。 很典型的还有我们常见的进度条或者菊花loading图,也是从另外的方面的努力,来“掩盖”耗时的问题,而耗时问题有时候是无法避免的。

    978100发布于 2017-12-29
  • 来自专栏IMWeb前端团队

    如果被耗时任务拖累,可能是姿势不对

    本文作者:IMWeb helinjiang 原文出处:IMWeb社区 未经同意,禁止转载 如果被耗时任务拖累,可能是姿势不对 在业务中,有时候需要处理一些相对耗时的事情,而且还有一些其他的逻辑还可能会依赖这个耗时任务 客户端的 getLocation 接口去获取用户当前地理位置,其实是非常耗时的操作。 除了客户端的接口会耗时之外,还需要调用一次后台CGI,由于这个CGI接口已经在现网运行过一段时间,从检测的数据来说,wifi下请求一次耗时大概在 50ms ~ 150ms 左右,如果在非wifi场景下 ,这个时间肯定会更耗时。 很典型的还有我们常见的进度条或者菊花loading图,也是从另外的方面的努力,来“掩盖”耗时的问题,而耗时问题有时候是无法避免的。

    89810发布于 2019-12-04
  • 来自专栏Devops专栏

    8--Gradle进阶 - Gradle任务的入门、任务行为

    8--Gradle进阶 - Gradle任务的入门、任务行为 Gradle Task Gradle 项目工程的管理 实质上是 Task 对象的集合。 下面我们来看看如何编写 Gradle Task 任务。 task 任务,如下: 1685894623286 // 自定义的任务1 task("task1") { println "hello task1...." } // 自定义的任务2 task **提示 3:**区分任务的配置段和任务的行为,任务的配置段在配置阶段执行,任务的行为在执行阶段执行 任务的行为 doFirst、doLast 两个方法可以在任务内部定义,也可以在任务外部定义: // 自定义的任务3 task task3 { // 任务的配置阶段执行 println "hello task3...." // 任务的行为:在执行阶段执行,doFirst会在doLast

    64740编辑于 2023-09-01
  • 来自专栏FluentStudy

    每日一题:如何实现异步任务处理来解决耗时操作问题

    今天说一个在实际项目中特别实用的解决并发耗时问题的办法:异步任务处理。这里采用 redis list 结构来实现。 在网上看到一个比较好的关于这两组概念的区别,即同步和异步是描述行为的,即我是如果去处理当有类似阻塞这种情况的请求,比如 IO 操作,比如耗时操作,而阻塞和非阻塞描述的是一种状态。 4 5 "foo bar" (integer) 9 > lrange mylist 0 -1 1) "first" 2) "A" 3) "B" 4) "1" 5) "2" 6) "3" 7) "4" 8) ,当客户端发起请求,服务端接收到请求,可能需要完成很多复杂的逻辑,有些甚至是包括一些耗时的操作,这个时候我们可以将这个耗时的操作当作一个任务,把它塞到 redis 的 list 中,而在另一边开启一个常驻脚本 : # -*- coding: utf-8 -*- """ @Time : 2019/7/6 下午10:57 @Author : yrr @File : task_async.py @Desc

    1.3K20发布于 2020-08-21
  • 来自专栏Devops专栏

    还在为需要执行耗时任务头疼?给你介绍介绍神器Celery

    前言 在开发运维平台、爬虫平台、自动化测试平台、大数据任务执行中,总会有各种各样的耗时任务需要处理。 有什么好的队列任务执行工具可以使用呢? 这时候就可以使用神器celery来帮我们解决这些耗时任务的执行问题。 我们将耗时任务放到后台异步执行。不会影响用户其他操作。除了注册功能,例如上传,图形处理等等耗时任务,都可以按照这种思路来解决。如何实现异步执行任务呢? celery适用异步处理问题,当发送邮件、或者文件上传, 图像处理等等一些比较耗时的操作,我们可将其异步执行,这样用户不需要等待很久,提高用户体验。 - ** ---------- .> transport: redis://127.0.0.1:6379/8 - ** ---------- .> results: disabled://

    1.6K20编辑于 2022-01-17
  • 来自专栏JNing的专栏

    python: 记录耗时

    模板 这是我日常总结出的代码模板,用于记录某一段程序的具体耗时: # 记录起始时间 start_time = time.time() # 所需计算耗时的主程序 main() # 计算时间差值

    1.1K30发布于 2018-09-27
  • 来自专栏wfaceboss

    运行耗时统计

    C#: Stopwatch watch=new Stopwatch ();//实例化一个计时器 watch.Start();//开始计时 此处为要计算的运行代码 例如: int sum=0; for(int i=0; i<100;i++){ for(int j=0;j<100;j++){sum+=j;}} watch.Stop();//结束计时 //获取当前实例测量得出的总运行时间(以毫秒为单位) string time = watch.ElapsedMilliseconds.ToString(

    80130发布于 2019-04-08
  • 来自专栏数据科学(冷冻工厂)

    Python 异步: 使用和查询任务8

    任务是异步程序的货币。在本节中,我们将仔细研究如何在我们的程序中与它们交互。1. 任务生命周期异步任务具有生命周期。首先,任务是从协程创建的。然后安排在事件循环中独立执行。在某个时候,它会运行。 图片现在我们已经从高层次上熟悉了任务的生命周期,让我们仔细看看每个阶段。2. 如何检查任务状态创建任务后,我们可以检查任务的状态。 我们可能要检查两种状态,它们是:任务是否完成任务是否取消让我们依次仔细看看每一个。2.1. 检查任务是否完成我们可以通过 done() 方法检查任务是否完成。 已安排的任务未完成。同样,正在运行的任务未完成。如果出现以下情况,则完成任务:协程正常结束。协程显式返回。协程中出现意外错误或异常任务被取消。2.2. 如何获取任务异常任务包装的协程可能会引发未处理的异常。这实际上会取消任务。我们可以通过 exception() 方法在任务包装的协程中检索未处理的异常。...

    1.6K01编辑于 2023-02-09
  • 来自专栏数据科学(冷冻工厂)

    Python 异步: 使用和查询任务8

    任务是异步程序的货币。在本节中,我们将仔细研究如何在我们的程序中与它们交互。 1. 任务生命周期 异步任务具有生命周期。首先,任务是从协程创建的。然后安排在事件循环中独立执行。 现在我们已经从高层次上熟悉了任务的生命周期,让我们仔细看看每个阶段。 2. 如何检查任务状态 创建任务后,我们可以检查任务的状态。 我们可能要检查两种状态,它们是: 任务是否完成 任务是否取消 让我们依次仔细看看每一个。 2.1. 检查任务是否完成 我们可以通过 done() 方法检查任务是否完成。 如果任务有机会运行但现在不再运行,则该任务已完成。已安排的任务未完成。同样,正在运行的任务未完成。 如果出现以下情况,则完成任务: 协程正常结束。 协程显式返回。 如何获取任务异常 任务包装的协程可能会引发未处理的异常。这实际上会取消任务。 我们可以通过 exception() 方法在任务包装的协程中检索未处理的异常。

    1.4K50编辑于 2023-02-27
  • 来自专栏全栈程序员必看

    使用StopWatch计算耗时

    一、传统计算耗时方式 一般采用 System.currentTimeMillis() 来获取时间,然后打印当前时间与任务开始执行时间的差值。 Spring 计时器 StopWatch StopWatch是位于 org.springframework.util包下的一个工具类,通过它可方便的对程序部分代码进行计时(ns级别),可以很方便的计算出任务耗时 void main(String[] args) throws InterruptedException { StopWatch sw = new StopWatch("xx任务耗时 void main(String[] args) throws InterruptedException { StopWatch sw = new StopWatch("xx任务耗时 统一归纳,展示每项任务耗时与占用总时间的百分比,展示结果直观。

    2.1K10编辑于 2022-09-09
  • 来自专栏lib库

    OkHttp请求耗时统计

    请求开始结束监听 04.dns解析开始结束监听 05.连接开始结束监听 06.TLS连接开始结束监听 07.连接绑定和释放监听 08.request请求监听 09.response响应监听 10.如何监听统计耗时 11.应用实践之案例 01.先提问一个问题 OkHttp如何进行各个请求环节的耗时统计呢? 通过继承此接口,调用者可以监视整个应用中网络请求次数、流量大小、耗时(比如dns解析时间,请求时间,响应时间等等)情况。 eventListener.callFailed(call, e); } else if (callEnd) { eventListener.callEnd(call); } } } 10.如何监听统计耗时

    2.9K00发布于 2020-09-23
  • 来自专栏C/C++基础

    Golang 函数耗时统计

    1.朴素方法 在函数起始位置计算当前时间,在函数结束位置算出耗时。 total := 0 for i:=1; i <= n; i++ { total += i } tc := time.Since(startT) //计算耗时 如果有多个函数需要统计耗时,那么多处书写重复的两行代码会造成代码冗余。由于 Golang 提供了函数延时执行的功能,借助 defer ,我们可以通过函数封装的方式来避免代码冗余。 不过相比于函数封装带来的便利与代码美观,新增的耗时是微不足道可以接受的。 3.优雅方法 每次调用耗时统计函数timeCost()都需要传入time.Now(),重复书写time.Now()无疑造成了代码冗余。我们在上面的基础上,进行进一步的封装,实现如下。

    8.8K42发布于 2019-06-19
  • 来自专栏look Java

    Springboot打印接口耗时

    Springboot 打印 接口 耗时 三种方式 下面为大家一一对应 aop切面的方式 过滤器的方式 拦截器的方式 1 aop切面的方式 1.1 实现思路 引入aop依赖 自定义注解 定义切面,采用环绕通知 filterChain.doFilter(servletRequest, servletResponse); LOG.info("------------- LogFilter 结束 耗时 (Long) request.getAttribute("requestStartTime"); LOG.info("------------- LogInterceptor 结束 耗时

    86410编辑于 2023-12-07
  • 来自专栏国产程序员

    测试性能(Java 8 的循环和Java 7 的循环耗时的对比测试)

    Java 8 里面的stream 有串行流和并行流之分。 说高级的stream就是那个并行流。下面是那个并行流的简单实现。只要是继承Collection类的都可以这么用。 parallel().forEach(System.out::print); System.out.println(" list.stream().parallel().forEach 执行耗时 list.stream().forEach(System.out::print); System.out.println(" list.stream().forEach 执行耗时 可以看到java8的lambda的循环和java7的循环效率差不多,并行和串行的流的差别,可以看出并行的流,在循环的时候,就不是 1 - 9999 挨着输出。而是,看多核的心情。 那么Java 8之前会这样写: for (ElementType e : list) { System.out.println(e); } 从Java 8开始,使用ArrayList的新

    1.8K30发布于 2019-07-03
  • 来自专栏pythonista的日常

    业务代码耗时操作优化

    我为每个功能都用 time 方法打印了各自操作的耗时,通过比对耗时发现是获取用户 openid 的操作比较耗时,因为涉及到了向微信发送 request 的请求以及等待微信的请求响应,所有我就把获取用户 它是异步的,用它处理耗时的操作很方便。第一个参数是多少秒后执行,第二个参数是函数名,第三个参数是要异步执行的函数所需的参数。 下面附 Timer 类的源码,它继承了 Thread 类。

    84530发布于 2020-06-16
  • 来自专栏微信终端开发团队的专栏

    耗时还能这么优化??

    抽象一下问题,我们在深入思考类推一下:     对于普通的耗时任务而言,我们通常选取的优化手段是,判断任务是否有时间强相关性,否则可以通过多线程并行的方式来缩短耗时。 那我们的任务是什么呢?主要耗时又在哪里?任务相关性几何?    任务是将长视频进行转码。细分一下模块,主要包括:视频转码和音频转码。 进行一些简单的测试,选取小米8 se作为测试机型,我们设置分辨率为720x1280,码率为3500kbps来创建MediaCodec实例,我们可以看到如下图所示信息。 3.3 性能优化     到目前为止,我们算是实现标准的并行转码工作,不过到这里整个工作只能算完成了8成,接下来我们还需要进一步分析下性能数据,将效率优化成。 8.数据展示 文献参考: [ANDROID中的EGL扩展]http://tangzm.com/blog/?

    6.5K82发布于 2021-08-26
  • 来自专栏开源技术小栈

    ThinkPHP8.X〡Queue 异步任务队列应用

    任务发布 消息的消费与删除 创建RestyJob消费者类 <? 当前任务将由哪个类来负责处理。 --queue dismiss_job_queue 要处理的队列的名称 --delay 0 如果本次任务执行抛出异常且任务未被删除时,设置其下次执行前延迟多少秒,默认为0。 --sleep 3 如果队列中无任务则sleep多少秒后重新检查(work+daemon模式)或退出(listen或非daemon模式) --tries 2 如果任务已经超过尝试次数上限,则触发“任务尝试数超限 --sleep 3 如果队列中无任务,则多长时间后重新检查。 --tries 0 如果任务已经超过重发次数上限,则进入失败处理逻辑,默认为0。

    1.3K10编辑于 2025-07-24
  • kanass通关指南(8) - 如何进行任务管理

    点击添加事项->任务,填写任务标题与描述,选择任务类型等信息​添加任务属性说明属性是否必填描述标题必填任务标题,用来描述任务,支持修改描述非必填用来详细描述任务内容,支持上传图片,支持修改任务类型非必填用来标明任务类型 ,支持修改优先级非必填用来表示任务的优先级别,支持修改负责人必填当前任务的负责人,支持修改计划日期非必填用来表示当前任务需要完成的时间所属模块非必填用来表示当前任务属于哪个模块所属迭代非必填用来表示当前任务属于哪次迭代所属版本非必填用来表示当前任务属于哪个版本 2、查看与编辑任务任务创建成功后,点击任务名称,页面以开启右抽屉的形式打开任务详情页面。 用户可以在详情页面对任务进行查看与修改​查看与编辑任务编辑标题直接在详情页面点击标题,即可修改编辑描述点击描述上的编辑按钮,编辑后点击确认,编辑保存成功编辑其他字段其他字段直接点击下拉框,即可编辑3、删除任务任务列表中点击更多 删除任务4、任务关联4.1事项关联子事项点击任务并进入任务详情页面,点击子事项,此页面提供添加子任务和关联子任务功能。添加子任务:可以在当前页面通过填写任务名称,快速创建子任务。创建成功后自动关联。

    18044编辑于 2025-11-20
  • 来自专栏架构驿站

    Curl命令分析接口耗时

    本文主要分享下Curl -w参数相关功能,通过此命令行定位分析API接口的请求耗时情况,以便快速高效解决链路存在的问题。 - time_total: 1.574913 可以看到本次请求各个步骤的时间戳都打印出来了,每个数字的单位都是秒(seconds),这样可以分析哪一步、那一个环节比较耗时 这个命令各个参数的意义: -w:从文件中读取要打印信息的格式 -o /dev/null:把响应的内容丢弃,因为我们这里并不关心它,只关心请求的耗时情况 - 内容传输时间:total(1.574913) - starttransfer(1.462707) s 综上所述,工作中若遇到某个接口请求的响应特别慢,我们可借助此种方法能够分析到底请求的哪一步耗时比较长

    8.2K31编辑于 2021-12-09
领券