Java中的IO的性能优化

逆向某团mtgsig参数时,我踩过的3个坑:从H5guard混淆到Python校验 本文详细解析了逆向某团mtgsig参数时遇到的三大挑战:H5guard混淆破解、环境补全检测与Python结果校验。通过实战案例,揭示了JavaScript加密算法的逆向技巧,包括控制流混淆拆解、隐蔽环境检测点规避以及跨语言校验的解决方案,为开发者提供了一套完整的逆向工程避坑指南。 阅读详情

Java中的IO的性能优化
在使用IO的时候注意一下细节,能使性能得到很大的优化.
首先读写大文件,使用Buffer是肯定的了,使用方法,有下边两个

 1 方法一:
 2 public   static   void  test1(String fileName)  {
 3      long  start  =  System.currentTimeMillis();
 4      try   {
 5         FileInputStream fis  =   new  FileInputStream(fileName);
 6         BufferedReader br  =   new  BufferedReader( new  InputStreamReader(fis) );
 7         StringBuffer sb  = new  StringBuffer();
 8         String str;
 9          while  ((str  =  br.readLine())  !=   null {
10             sb.append(str);
11         }

12     }
  catch  (IOException e)  {
13     }

14      long  end  =  System.currentTimeMillis();
15      long  time = end - start;
16     System.out.println(time);
17 }

18 方法二:
19 public   static   void  test2(String fileName)  {
20      long  start  =  System.currentTimeMillis();
21      try   {
22         FileInputStream fis  =   new  FileInputStream(fileName);
23          byte  buf[]  =   new   byte [ 8192 ];
24          int  n;
25         StringBuffer sb  =   new  StringBuffer();
26          while  ((n  =  fis.read(buf))  !=   - 1 {
27             sb.append(buf);
28         }

29         fis.close();
30     }
  catch  (IOException e)  {
31     }

32      long  end  =  System.currentTimeMillis();
33      long  time = end - start;
34     System.out.println(time);
35 }


方法一1937ms 
方法二47ms
测试结果相差大概50倍左有,很大。
而我平时的习惯是方法一。问题主要出在readLine()上。

如果只是简单的文件拷贝,下边两种方法也不错

 

 1 public       static       void    test3()       {
 2     String cmd   =   "  copy d:/out1.txt out2.txt  "  ;
 3      try   {
 4          Runtime.getRuntime().exec(cmd);
 5     }
  catch  (Exception e)  {
 6          e.printStackTrace();
 7     }

 8 }

 9 public     static     void   test4()  {
10     String inFileName   =     "  d:/out1.txt  "  ;
11     String outFileName   =     "  d:/out2.txt  "  ;
12      long   start   =   System.currentTimeMillis();
13      try   {
14         File inFile   =     new   File(inFileName);
15         File outFile   =     new   File(outFileName);        
16         RandomAccessFile inRaf   =     new   RandomAccessFile(inFile,  "  r  "  );
17         RandomAccessFile outRaf   =     new   RandomAccessFile(outFile,  "  rw  "  );             
18         FileChannel infc   =   inRaf.getChannel();
19         FileChannel outfc   =   outRaf.getChannel();             
20         infc.transferTo(  0  , inFile.length(),outfc );             
21         infc.close();
22         outfc.close();
23     }
  catch  (Exception e)  {
24         e.printStackTrace();
25     }

26      long   end   =   System.currentTimeMillis();
27      long   time  =  end  -  start;
28     System.out.println(time);
29 }
 
Xilinx UltraScale+系列FPGA实现USB3.0 DEV 设备 部分原理图+代码分享 Zynq UltraScale+ MPSoC 系列是 Xilinx 新一代 Zynq 平台。在 FPGA 里有完整的 ARM 处理(PS),包含了四核或双核 Cortex-A53 处理器 ,处理器子系统中有DDR内存控制器等大量的外设,在FPGA中完全独立于可编程逻辑单元(PL)如果暂时没有用到PL部分,PS也能单独工作,相当于可以当成一个ARM来用了(以前的不行)。 ARM也包含USB3.0控制器,这是实现USB3.0DEV的关键,根据官方手册(ug1085)描述,USB主(Host)从(Device) 阅读详情

相关推荐

Label Studio 图像分割自动标注接入教程:从模型预测到一键上传 Predictions

这篇文章详细介绍了如何使用Label Studio进行图像分割任务的自动标注流程。主要内容包括: 环境准备:安装Label Studio和模型推理依赖 项目配置:启动Label Studio服务,创建项目并配置BrushLabels标注界面 数据准备:导入待标注图片,获取API访问凭证 模型推理:运行训练好的分割模型生成预测mask 结果上传:将预测结果转换为Label Studio格式并通过API上传为Predictions 文章提供了完整的操作指南,包括: 详细的命令行参数说明 推荐的项目目录结构 标注

. 416

Java中的IO操作技巧与性能优化

通过本文,我们详细介绍了Java中的IO操作技巧与性能优化,包括文件IO、网络IO以及一些常见的性能优化技巧。掌握这些技巧可以帮助我们编写更加高效和稳定的IO操作代码,从而提升应用的整体性能和用户体验。

技术研究中心 1528

修复zookeeper未授权访问漏洞

【代码】修复zookeeper未授权访问漏洞。

qq_28392947的博客 4024

Java I/O优化

尽量减少编码:网络I/O传输都是字节形式,需要序列化而我们发送的传输数据是字符形式,所以需要编码,耗时,所以直接以字节形式发送,即提前将字符转化为字节,减少转化过程。减少网络交互次数(缓存、合并访问请求):Oracle的jdbc驱动程序就提供对查询的sql结果缓存,客户与数据库端都有,可以有效减少对数据库的访问。优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略。设计合理的磁盘存储数据块,以及访问这些数据库的策略。减少网络传输数据量的大小:将数据压缩后再传输。增加缓存,减少磁盘访问次数。

weixin_42060331的博客 321

java io 性能_java io性能分析

摘要:本文大多技术围绕调整磁盘文件 I/O,但是有些内容也同样适合网络 I/O 和窗口输出。第一部分技术讨论底层的I/O问题,然后讨论诸如压缩,格式化和串行化等高级I/O问题。然而这个讨论没有包含应用设计问题,例如搜索算法和数据结构,也没有讨论系统级的问题,例如文件高速缓冲。Java语言采取两种截然不同的磁盘文件结构。一个是基于字节流,另一个是字符序列。在Java 语言中一个字符有两个字节表示,而...

weixin_42506884的博客 562

Java代码的IO优化总结

Java代码的IO优化总结 1、现象:问题描述    在优化MMSC的过程中,发现Java模块在读取IO的时候要等待超时才结束读取的过程,这种操作是一种低效的操作,降低了系统的性能。 2、关键过程:根本原因分析    在Solaris10下查看发现,读取IO需要等待到超时的情况主要集中在读取外部的HTTP请求时候产生,这部分代码主要是Servlet中读取外部提交请求的部分。在Servl

sea_wave2011的专栏 1657

深入理解Java IO流:补充和优化

在计算机编程中,IO(Input/Output)流是一种用于处理输入和输出操作的机制,它是与外部设备(如文件、网络连接等)交换数据的重要手段。Java提供了丰富的IO流类库,使得数据的读取和写入变得高效、灵活而且可靠。上篇文章中研究到字节流和字符流,本文将深入探讨字节缓冲流和字符缓冲流以及一些常见的IO流。

weixin_65175398的博客 339

hibernate+struts+mysql有关utf8乱码问题的解决。

1、编写项目相关文本文件时,统一采用utf-8的编码方式,无论是java源文件还是jsp文件等。2、编写一个编码转换过滤器类,完成编码转换:request.setCharacterEncoding("UTF-8");  chain.doFilter(request,response);  response.setCharacterEncoding("UTF-8"); 3、为hibe

zsflyhorse的专栏 1072

struts2 hibernate 中文mysql都是问号_新手再问一个老有关问题-mysql中文显示(实在没办法了)...

新手再问一个老问题-----mysql中文显示(实在没办法了)我用struts+hibernate建立一个项目,数据库用的是mysql 5.1.1、在hibernate配置文件中写了jdbc:mysql://localhost:3306/struts?useUnicode=true&characterEncoding=gbk,2、然后在mysql中建立相应的表,并设置为ENGINE=M...

weixin_36070745的博客 159

hibernate+mysql乱码问题解决方案

struts hibernate mysql 中文乱码解决方法

zhh_cy的专栏 624

关于struts2,mysql,hibernate的开发环境下的中文显示为“问号”的问题总结

   ~前天刚开始学Hibernate~一切还比较顺利~但是突然发现插入mysql数据库的中文全都是问号,于是开始上网查解决的办法。我一直以为是自己在MyEclipse的编码字符集不对,于是乎几乎把所有的方法都试了一遍,但是还是问号问号。。。开始自己没有思考为什么会这样,后来我把输入的中文在每个前台页面和每个后台action都输出来看看,结果发现都是正确的。于是,想到了差不多应该是数据库的问题。

quechao123的专栏 5732

spring+hibernate+struts2应用mysql数据库乱码问题

spring+hibernate+struts2应用mysql数据库乱码问题 本文转自:     http://hi.baidu.com/hxzon/blog/item/b9214110985a28fac3ce799d.html spring+hibernate+struts2应用mysql数据库乱码问题 在spring配置文件里url末尾添加 ?characterE

lijian843031896的博客 459

ssh linux mysql 乱码_JAVA ,SSH中文及其乱码问题的解决 6大配置点 使用UTF-8编码

JSP,mysql,tomcat下(基于struts2)中文及其乱码问题的解决 6大配置点 使用UTF-8编码目前对遇到J2EE 开发中 中文及其乱码问题,参考网上资料做个总结, 主要是6大配置点:1 struts2配置 2 数据库 3 页面 4 jdbc连接 5 tomcat 6.hibernate配置以下解决方法不分顺序,大家按照自己的配置对比,同时也欢迎大家补充1 struts2配置stru...

weixin_29416629的博客 180

java ssh乱码_JAVA ,SSH中文及其乱码问题的解决 6大配置点 使用UTF-8编码

JSP,mysql,tomcat下(基于struts2)中文及其乱码问题的解决 6大配置点 使用UTF-8编码目前对遇到J2EE 开发中 中文及其乱码问题,参考网上资料做个总结, 主要是6大配置点:1 struts2配置 2 数据库 3 页面 4 jdbc连接 5 tomcat 6.hibernate配置以下解决方法不分顺序,大家按照自己的配置对比,同时也欢迎大家补充1 struts2配置stru...

weixin_29174385的博客 390

bernate配置mysql_JAVA ,SSH中文及其乱码问题的解决 6大配置点 使用UTF-8编码

JSP,mysql,tomcat下(基于struts2)中文及其乱码问题的解决 6大配置点 使用UTF-8编码目前对遇到J2EE 开发中 中文及其乱码问题,参考网上资料做个总结, 主要是6大配置点:1 struts2配置 2 数据库 3 页面 4 jdbc连接 5 tomcat 6.hibernate配置以下解决方法不分顺序,大家按照自己的配置对比,同时也欢迎大家补充1 struts2配置stru...

weixin_34086545的博客 113

JAVA ,SSH中文及其乱码问题的解决 6大配置点 使用UTF-8编码

目前对遇到J2EE 开发中 中文及其乱码问题,参考网上资料做个总结, 主要是6大配置点

risingsun001的专栏 4762

解决mysql+hibernate在j2ee框架下的数据库中文乱码问题

1、可以不在struts下使用过滤器,可直接把过滤器写在web.xml中 2、配置好filter类之后,要在hibernate配置文件中 加入以下代码: <property name="connection.useUnicode">true</property> <property name="connection.charact...

weixin_34310785的博客 84

mysql插入中文乱码

我遇见过两种情况, 1 用hibernate连接数据库  ,连接字符串加上后面的代码 2 用struts2 写连接类   private static final String url = "jdbc:mysql://localhost:3306/yuqing?useUnicode=true&characterEncoding=utf8"; 这两种情况写的不太一样  ,我也不知道为

加利敦张大师的专栏 523

解决存到数据库里中文乱码问题

1.页面 每个页面上加上  这样在jsp页面里,点右键,查看编码方式则为UTF-8. [java] view plaincopyprint? @page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>   [java] view plain

小兵qwer的专栏 821

SM3280AB荣慧主控量产工具

aigo优盘可用,其他没试

足球运动员检测数据集VOC+YOLO格式11124张2类别.7z

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):11124标注数量(xml文件个数):11124标注数量(txt文件个数):11124标注类别数:2标注类别名称:[“ball”,“player”]更多信息:https://blog.csdn.net/FL1623863129/article/details/139559124

上一篇: 长城双核独显笔记本
下一篇: 华硕Z92Q22JE-DR
sinton
博客等级 码龄21年 2粉丝 29原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值