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

手机做公司网站网站建设网络公

手机做公司网站,网站建设网络公,软件app开发公司海报,企点下载官网目录 1- 引言#xff1a;直接内存概述1-1 直接内存是什么#xff1f;直接内存的定义(What)1-2 为什么用直接内存#xff1f;Java程序对直接内存的使用 (Why) 2- ⭐核心#xff1a;详解直接内存(How)2-1 文件拷贝案例介绍对比常规 IO(BIO) 和 NIO常规 IO 的操作流程NIO 的操… 目录 1- 引言直接内存概述1-1 直接内存是什么直接内存的定义(What)1-2 为什么用直接内存Java程序对直接内存的使用 (Why) 2- ⭐核心详解直接内存(How)2-1 文件拷贝案例介绍对比常规 IO(BIO) 和 NIO常规 IO 的操作流程NIO 的操作流程 3- 小结3-1 什么是直接内存 1- 引言直接内存概述 1-1 直接内存是什么直接内存的定义(What) 直接内存并不属于 JVM 中的内存结构不由 JVM 进行管理。是虚拟机的系统内存常见于 NIO 操作时用于数据缓冲区它分配回收成本较高但读写性能高。 1-2 为什么用直接内存Java程序对直接内存的使用 (Why) 高性能需求直接内存的读写性能高于传统的JVM堆内存因为减少了内存复制的次数。在进行大量数据的读写操作时使用直接内存可以显著提高性能。NIO操作Java NIONon-blocking IO库通过使用直接内存来提升IO操作的吞吐量。直接内存允许Java程序直接访问操作系统的内存从而减少了数据在系统缓冲区和Java堆缓冲区之间复制的开销。资源共享直接内存是操作系统内存的一部分可以被操作系统和Java程序共享访问这使得数据处理更加高效。避免垃圾回收直接内存不受JVM的垃圾回收机制影响减少了由于垃圾回收导致的性能波动对一些高性能应用场景尤为重要。 2- ⭐核心详解直接内存(How) 2-1 文件拷贝案例介绍对比常规 IO(BIO) 和 NIO Java 代码完成文件拷贝场景E:/bak1 下有文件 需要拷贝到 ——E:/bak2 文件夹下 package com.heima.jvm;import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.io.FileInputStream; import java.io.FileOutputStream;public class DirectMemoryDemo {static final String FROM E:\\bak1\\01-java成神之路.mp4;static final String TO E:\\bak2\\abc.mp4;static final int _1Mb 1024 * 1024;public static void main(String[] args) {io(); // 256.8563directBuffer(); // 63.2449}private static void directBuffer() {long start System.nanoTime();try (FileChannel from new FileInputStream(FROM).getChannel();FileChannel to new FileOutputStream(TO).getChannel()) {ByteBuffer bb ByteBuffer.allocateDirect(_1Mb);while (true) {int len from.read(bb);if (len -1) break;bb.flip();to.write(bb);bb.clear();}} catch (Exception e) {e.printStackTrace();}long end System.nanoTime();System.out.println(NIO Time: (end - start) / 1e6 ms);}private static void io() {long start System.nanoTime();try (FileInputStream fis new FileInputStream(FROM);FileOutputStream fos new FileOutputStream(TO)) {byte[] buffer new byte[_1Mb];int len;while ((len fis.read(buffer)) ! -1) {fos.write(buffer, 0, len);}} catch (Exception e) {e.printStackTrace();}long end System.nanoTime();System.out.println(IO Time: (end - start) / 1e6 ms);} } 结果分析NIO 比 BIO 效率更高 常规 IO 的操作流程 Java本身不具备磁盘读写的能力如果 Java 需要对磁盘进行读写必须调用操作系统提供的函数Native 修饰的本地方法 ①内存操作 —— CPU状态切换 Java程序运行在用户态User Space当需要进行磁盘读写操作时必须切换到内核态Kernel Space。这种切换会消耗CPU资源。 ②内存操作 —— 数据读取和缓冲区使用: 通过调用操作系统的函数将磁盘文件读取到系统缓存区中。为了避免内存占用过大操作系统利用缓冲区分批次读取数据。 ③系统缓冲区与Java缓冲区的交互 系统的缓冲区中 Java 代码无法直接运行因此 Java 程序需要在堆内存中分配一块缓冲区Java缓冲区来存储数据通常通过new byte[]的方式分配。 ⑤数据复制: 数据从系统缓冲区复制到Java缓冲区。Java代码通过读取Java缓冲区中的数据进行操作。由于存在两块缓冲区数据需要在两块内存中存储两次这会导致不必要的复制操作从而降低效率。 问题所在多次数据复制 因为数据需要从系统缓冲区复制到Java缓冲区导致了数据的重复存储。这种多次数据复制不仅消耗内存资源还会影响整体性能。 NIO 的操作流程 在 NIO 的过程中操作系统直接在内存中划分出了一个 直接内存 缓冲区 Java 代码也可以直接在直接访问直接内存。直接内存对于操作系统和 Java 来说都是可以共享的区域这就是直接内存。这就是直接内存带来的好处直接提高了文件的 IO 操作。 3- 小结 3-1 什么是直接内存
http://www.hkea.cn/news/14288835/

相关文章:

  • 中小企业品牌网站建设做网络平台的网站
  • 深圳有做公司网站电脑网站怎么做
  • 运动类网站汕头代理注册公司
  • 西安网站有哪些手续费重庆网站建站推广
  • 网站发布初期的推广东莞网站建设培训
  • 山东建设银行官方网站湖南住房城乡建设厅官方网站
  • 有没有专门做线下活动的网站网络营销外包要多少钱
  • dedecms购物网站模板下载如果做网站赚钱
  • 玩具网站设计厦门人才网
  • dw做网站环境配置网站建设与网站优化
  • 做网站都需要哪些知识企业邮箱怎么获取
  • 学什么可以先做网站个人网站图片
  • 企业网站建设方案价格宁波seo推广推荐
  • 贵阳住房城乡建设部网站盐城市网站建设公司
  • 永久免费的wap建站平台网站管理机制建设情况
  • 网站图片有什么要求吗wordpress 破解
  • 小企业网站建设怎么做好秦皇岛北京网站建设
  • 网站建设后需要维护吗深圳建网站哪个公司
  • 深圳别墅设计公司首选seo文章关键词怎么优化
  • 青岛商务学校网站建设中国网新重庆
  • 中国化工网网站建设建议友邦zh200安装视频
  • 网站处于建设中会显示什么英文营销网站建设情况调查问卷
  • 潍坊营销型网站建设廊坊做网站公司
  • 培训行业门户网站建设方案什么是自主设计网站
  • 哪个网站找做软件下载运动鞋建设网站前的市场分析
  • 麻涌镇网站仿做定制东莞网站制作公司
  • 教育机构网站建设吉安网站建设优化服务
  • 建网站用什么工作站网页制作基础课件
  • 西安免费做网站价格各大网站大全
  • 域名时间与网站优化备案个人可以做视频网站