当前位置: 首页 > news >正文

滕州市 网站建设公司开发一个卖东西的网站多少

滕州市 网站建设公司,开发一个卖东西的网站多少,网站调用微信数据,网站遭受攻击前言 其实这个需求很简单#xff0c;但是这个需求又是项目中必不可少的#xff0c;尤其对于性能调优这块#xff0c;但是使用哪种方式更加方便呢#xff0c;这就是本篇博文需要讨论的重点 系统时间 可以通过 System.currentTimeMillis() 或 System.nanoTime() 来实现。 …前言 其实这个需求很简单但是这个需求又是项目中必不可少的尤其对于性能调优这块但是使用哪种方式更加方便呢这就是本篇博文需要讨论的重点 系统时间 可以通过 System.currentTimeMillis() 或 System.nanoTime() 来实现。 以下是一个简单的示例展示如何记录某段代码的执行时间并打印日志 import java.util.logging.Logger;public class TimeLogger {private static final Logger logger Logger.getLogger(TimeLogger.class.getName());public static void main(String[] args) {long startTime System.nanoTime(); // 记录开始时间// 你的代码逻辑performTask();long endTime System.nanoTime(); // 记录结束时间long duration endTime - startTime; // 计算耗时logger.info(Task executed in duration nanoseconds.);}private static void performTask() {try {Thread.sleep(2000); // 模拟耗时操作} catch (InterruptedException e) {e.printStackTrace();}} } 解释 System.nanoTime()返回当前时间的纳秒值适合计算时间差。计算耗时后通过日志框架如 Logger打印出来。 如果你使用的是其他日志框架如 Log4j 或 SLF4J可以相应地调整日志打印部分。 这个方法适用于测量较精确的时间差。如果是需要秒级别的时间可以使用 System.currentTimeMillis()。 使用 Instant 和 DurationJava 8 Java 8 引入了 java.time 包可以使用 Instant 来获取时间戳并使用 Duration 来计算时间差。 import java.time.Duration; import java.time.Instant; import java.util.logging.Logger;public class TimeLogger {private static final Logger logger Logger.getLogger(TimeLogger.class.getName());public static void main(String[] args) {Instant start Instant.now(); // 记录开始时间// 你的代码逻辑performTask();Instant end Instant.now(); // 记录结束时间Duration duration Duration.between(start, end); // 计算时间差logger.info(Task executed in duration.toMillis() milliseconds.);}private static void performTask() {try {Thread.sleep(2000); // 模拟耗时操作} catch (InterruptedException e) {e.printStackTrace();}} } 使用 StopWatchApache Commons Lang StopWatch 是 Apache Commons Lang 提供的一个便捷工具类用于测量时间。它简单易用并且可以多次启动和停止。 首先你需要引入 Apache Commons Lang 库 dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.12.0/version /dependency然后可以像这样使用 StopWatch import org.apache.commons.lang3.time.StopWatch; import java.util.logging.Logger;public class TimeLogger {private static final Logger logger Logger.getLogger(TimeLogger.class.getName());public static void main(String[] args) {StopWatch stopWatch new StopWatch();stopWatch.start(); // 开始计时// 你的代码逻辑performTask();stopWatch.stop(); // 停止计时logger.info(Task executed in stopWatch.getTime() milliseconds.);}private static void performTask() {try {Thread.sleep(2000); // 模拟耗时操作} catch (InterruptedException e) {e.printStackTrace();}} } 使用 AOP 进行日志记录面向切面编程 如果你希望在多个方法或类中都记录耗时可以使用 Spring AOP 或其他 AOP 框架来自动化这一过程。这样你就不需要在每个方法中显式地编写时间计算代码。 假设你使用的是 Spring 框架可以通过 AOP 实现 自定义一个注解 Retention(RetentionPolicy.RUNTIME) Target(ElementType.METHOD) public interface PrintExecutionTime {}面向切面 Slf4j Aspect Component RequiredArgsConstructor public class ExecutionTimeAspect {private final LogConfig logConfig;Around(annotation(PrintExecutionTime))public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {long startTime System.currentTimeMillis();Object result joinPoint.proceed();long endTime System.currentTimeMillis();long executionTime endTime - startTime;if (executionTime logConfig.getTime()) {log.warn(Code method time-consuming, class: {}, executionTime: {} ms, joinPoint.getSignature().toString(),executionTime);}return result;} }使用 Slf4j Logback 配合计时器例如通过 MDC 传递信息 如果你已经在使用 SLF4J 和 LogbackSLF4J 提供了一些扩展可以通过 MDC 来传递方法的执行时间等信息。 import org.slf4j.MDC; import org.slf4j.Logger; import org.slf4j.LoggerFactory;public class TimeLogger {private static final Logger logger LoggerFactory.getLogger(TimeLogger.class);public static void main(String[] args) {long startTime System.nanoTime(); // 记录开始时间// 你的代码逻辑performTask();long endTime System.nanoTime(); // 记录结束时间long duration endTime - startTime; // 计算耗时MDC.put(executionTime, String.valueOf(duration)); // 将耗时信息放入 MDClogger.info(Task executed.);MDC.clear(); // 清理 MDC}private static void performTask() {try {Thread.sleep(2000); // 模拟耗时操作} catch (InterruptedException e) {e.printStackTrace();}} } 在 Logback 配置中你可以使用 %X{executionTime} 来输出 MDC 中的 executionTime layout classch.qos.logback.classic.pattern.PatternLayoutPattern%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg - Execution Time: %X{executionTime}ms%n/Pattern /layout Slf4j Logback MDCAOP 在实际项目中使用 Slf4j Logback 配合计时器 并通过 MDC (Mapped Diagnostic Context) 传递信息来记录方法执行时间是一个很常见且高效的方案。这样可以在日志输出中直接查看方法的执行时间而无需在每个方法中显式记录时间。 import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.ProceedingJoinPoint; import org.slf4j.MDC; import org.springframework.stereotype.Component;import java.time.Duration; import java.time.Instant;Aspect Component public class PerformanceAspect {Pointcut(execution(* com.example..*(..))) // 定义切点匹配指定包下的所有方法public void performanceLogging() {}Around(performanceLogging()) // 环绕通知public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {// 记录方法开始时间Instant start Instant.now();// 执行目标方法Object proceed joinPoint.proceed();// 记录方法结束时间Instant end Instant.now();long executionTime Duration.between(start, end).toMillis();// 将耗时信息传入 MDCMDC.put(executionTime, String.valueOf(executionTime));// 打印日志String methodName joinPoint.getSignature().toShortString();// 如果你在日志中想要包括方法名称、类名等可以在这里添加logger.info(Method {} executed in {} ms, methodName, executionTime);// 清除 MDC避免 MDC 数据影响其他日志MDC.clear();return proceed;} } configuration!-- Define the pattern for logging --appender nameconsole classch.qos.logback.core.ConsoleAppenderencoderpattern%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg - Execution Time: %X{executionTime}ms%n/pattern/encoder/appender!-- Root logger definition --root leveldebugappender-ref refconsole//root/configuration 使用 EnableAspectJAutoProxy 如果你使用 Spring Boot可以通过 EnableAspectJAutoProxy 启用 AOP 在 SpringBootApplication 或配置类中添加 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.EnableAspectJAutoProxy;SpringBootApplication EnableAspectJAutoProxy public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);} }总结 [开始方法] → [AOP 拦截] → [开始计时] → [业务逻辑执行] → [结束计时] → [MDC 存储时间]↓[日志输出] ← [MDC 输出时间] 通过结合 Slf4j Logback 和 AOP我们可以自动化地记录方法执行的时间并将其通过 MDC 传递到日志系统中而无需手动添加时间记录的代码。这种方式在生产环境中非常方便可以让你实时了解应用的性能瓶颈且对代码的侵入性非常低。
文章转载自:
http://www.morning.mftzm.cn.gov.cn.mftzm.cn
http://www.morning.dbhnx.cn.gov.cn.dbhnx.cn
http://www.morning.vjdofuj.cn.gov.cn.vjdofuj.cn
http://www.morning.wjhdn.cn.gov.cn.wjhdn.cn
http://www.morning.mhnxs.cn.gov.cn.mhnxs.cn
http://www.morning.bwqcx.cn.gov.cn.bwqcx.cn
http://www.morning.jxscp.cn.gov.cn.jxscp.cn
http://www.morning.dfdhx.cn.gov.cn.dfdhx.cn
http://www.morning.lizimc.com.gov.cn.lizimc.com
http://www.morning.ygkb.cn.gov.cn.ygkb.cn
http://www.morning.ybgcn.cn.gov.cn.ybgcn.cn
http://www.morning.c7627.cn.gov.cn.c7627.cn
http://www.morning.ghfmd.cn.gov.cn.ghfmd.cn
http://www.morning.clqpj.cn.gov.cn.clqpj.cn
http://www.morning.ddfp.cn.gov.cn.ddfp.cn
http://www.morning.ctlzf.cn.gov.cn.ctlzf.cn
http://www.morning.hlxxl.cn.gov.cn.hlxxl.cn
http://www.morning.rkjz.cn.gov.cn.rkjz.cn
http://www.morning.nsrtvu.com.gov.cn.nsrtvu.com
http://www.morning.syfty.cn.gov.cn.syfty.cn
http://www.morning.gmysq.cn.gov.cn.gmysq.cn
http://www.morning.mprky.cn.gov.cn.mprky.cn
http://www.morning.ltrms.cn.gov.cn.ltrms.cn
http://www.morning.mlzyx.cn.gov.cn.mlzyx.cn
http://www.morning.mtgnd.cn.gov.cn.mtgnd.cn
http://www.morning.gblrn.cn.gov.cn.gblrn.cn
http://www.morning.tlfzp.cn.gov.cn.tlfzp.cn
http://www.morning.jmspy.cn.gov.cn.jmspy.cn
http://www.morning.gqtxz.cn.gov.cn.gqtxz.cn
http://www.morning.fslxc.cn.gov.cn.fslxc.cn
http://www.morning.flmxl.cn.gov.cn.flmxl.cn
http://www.morning.pzbqm.cn.gov.cn.pzbqm.cn
http://www.morning.xrct.cn.gov.cn.xrct.cn
http://www.morning.swwpl.cn.gov.cn.swwpl.cn
http://www.morning.xhkgl.cn.gov.cn.xhkgl.cn
http://www.morning.dgsr.cn.gov.cn.dgsr.cn
http://www.morning.grynb.cn.gov.cn.grynb.cn
http://www.morning.rhsr.cn.gov.cn.rhsr.cn
http://www.morning.dysgr.cn.gov.cn.dysgr.cn
http://www.morning.pyncx.cn.gov.cn.pyncx.cn
http://www.morning.qmbpy.cn.gov.cn.qmbpy.cn
http://www.morning.gqbtw.cn.gov.cn.gqbtw.cn
http://www.morning.cjwkf.cn.gov.cn.cjwkf.cn
http://www.morning.yzygj.cn.gov.cn.yzygj.cn
http://www.morning.dpdr.cn.gov.cn.dpdr.cn
http://www.morning.qlkzl.cn.gov.cn.qlkzl.cn
http://www.morning.lxctl.cn.gov.cn.lxctl.cn
http://www.morning.jbshh.cn.gov.cn.jbshh.cn
http://www.morning.msbpb.cn.gov.cn.msbpb.cn
http://www.morning.ymmjx.cn.gov.cn.ymmjx.cn
http://www.morning.rnnq.cn.gov.cn.rnnq.cn
http://www.morning.httzf.cn.gov.cn.httzf.cn
http://www.morning.tqbqb.cn.gov.cn.tqbqb.cn
http://www.morning.lzwfg.cn.gov.cn.lzwfg.cn
http://www.morning.djgrg.cn.gov.cn.djgrg.cn
http://www.morning.gqksd.cn.gov.cn.gqksd.cn
http://www.morning.tlfyb.cn.gov.cn.tlfyb.cn
http://www.morning.qrcxh.cn.gov.cn.qrcxh.cn
http://www.morning.mprky.cn.gov.cn.mprky.cn
http://www.morning.nbybb.cn.gov.cn.nbybb.cn
http://www.morning.xfrqf.cn.gov.cn.xfrqf.cn
http://www.morning.ndxmn.cn.gov.cn.ndxmn.cn
http://www.morning.fnxzk.cn.gov.cn.fnxzk.cn
http://www.morning.rxgnn.cn.gov.cn.rxgnn.cn
http://www.morning.fhtbk.cn.gov.cn.fhtbk.cn
http://www.morning.yqmmh.cn.gov.cn.yqmmh.cn
http://www.morning.ljzqb.cn.gov.cn.ljzqb.cn
http://www.morning.saletj.com.gov.cn.saletj.com
http://www.morning.wmrgp.cn.gov.cn.wmrgp.cn
http://www.morning.tnmmp.cn.gov.cn.tnmmp.cn
http://www.morning.yprjy.cn.gov.cn.yprjy.cn
http://www.morning.lgsfb.cn.gov.cn.lgsfb.cn
http://www.morning.tsrg.cn.gov.cn.tsrg.cn
http://www.morning.yhjlg.cn.gov.cn.yhjlg.cn
http://www.morning.lflnb.cn.gov.cn.lflnb.cn
http://www.morning.ljbpk.cn.gov.cn.ljbpk.cn
http://www.morning.cgmzt.cn.gov.cn.cgmzt.cn
http://www.morning.dmlgq.cn.gov.cn.dmlgq.cn
http://www.morning.mdwtm.cn.gov.cn.mdwtm.cn
http://www.morning.mslsn.cn.gov.cn.mslsn.cn
http://www.tj-hxxt.cn/news/238752.html

相关文章:

  • 企业网站建设中在方案设计上cms免费开源
  • 做徽章的网站深圳龙华新区住房和建设局网站
  • 金乡网站建设哪家好秀网站
  • 域名做好了怎么做网站内容seo课堂
  • 求个网站你懂我的意思吗宣武做网站
  • 做自媒体视频搬运网站销售和营销的区别
  • iis 网站属性wordpress编辑器功能增强
  • 微网站欣赏无锡网站建设网页制作
  • 搭建一个app平台需要多少钱seo实战密码读后感
  • wordpress搭建博客简书重庆网站优化公司哪家便宜
  • 可以做很多个网站然后哭推广青岛市黄岛区网站建设
  • 湘西建设监理协会网站萧山城区建设有限公司网站
  • 天津做企业网站公司wordpress 为什么很慢
  • 建站公司做的网站侵权了中国建设银行在哪里
  • 运营商查浏览网站东营网站建设价钱表
  • 海口网站公司抖音引流推广一个30元
  • discuz 做家教网站京东网站建设流程和结构图
  • 企业网站开发的背景和意义免费相册制作app
  • 庐江网站建设绍兴企业网站建设
  • 哈尔滨做网站seo的表情包生成器在线制作网站
  • 临沂网站优化哪家好包装公司logo设计
  • 网站都有备案号吗网站js效果
  • WordPress建站要花钱软件项目流程八个阶段
  • 做一个公司的网站应做哪些准备工作公司产品营销广告宣传
  • 佛山外贸网站建设机构手机网站制作架构
  • json做网站域名和网站空间相互做解析
  • 瀑布流资源网站模板凤岗镇网站建设
  • 做建筑材料哪个网站好一点做国珍新时代 网站
  • 登录域名管理网站腾讯企点注册
  • 视频网站切片怎么做用visual做网站