0 0

java NIO 高的cpu占用3

最近修改一个Cache Server服务器,把Cache Server改成NIO通信方式后,系统的吞吐量得到了50%的提高,但是CPU的占用率却提高了一倍,请问这是什么原因呀? 是不是NIO很耗资源呢?
2009年12月09日 11:41

4个答案 按时间排序 按投票排序

0 0

NIO 学习中

不过普通IO高速读取占CPU本来就大。
你可以在适当的地方让线程休息1毫秒,这样CPU明显提升

2009年12月09日 11:41
0 0

nio有一个bug
会导致cpu 100%
用jdk6u18以上的版本

2009年12月09日 11:41
0 0

key.interestOps(key.interestOps() & ~SelectionKey.OP_WRITE);


发送完数据 去掉key的写事件 不然的话每次select时,不能阻塞。会造成无限循环。

2009年12月09日 11:41
0 0

有可能你的select读写事件没有处理好

2009年12月09日 11:41

相关推荐

    NIO与零拷贝_javanio_nio和零拷贝_

    总的来说,Java NIO与零拷贝技术的结合,为开发者提供了更高效率、更低资源消耗的I/O处理手段,尤其在处理大数据和高并发场景时,其优势更为明显。理解并掌握这些知识,对于提升Java应用程序的性能至关重要。

    Java NIO与IO性能对比分析.pdf

    在性能对比测试中,实验结果表明,基于NIO的新服务器模型在处理高并发时,平均响应时间仅为2.09毫秒,且CPU占用率保持在68.5%的较低水平。与之相比,传统IO服务器模型在处理并发流量时,不仅性能上无法达到新模型的...

    使用Java NIO编写高性能的服务器.doc

    【Java NIO简介】 Java NIO(New IO)是从JDK 1.4开始引入的一个新特性,它提供了一种不同于传统IO流的非阻塞I/O操作...然而,正确使用NIO也需要关注潜在的问题,如CPU占用率过高和线程阻塞,合理设计和优化是关键。

    Large-File-Processing-master_javanio_java大文件处理_

    10. **性能监控与调试**:在实际应用中,需要监控NIO操作的性能,例如CPU使用率、内存占用、I/O吞吐量等,以便找出性能瓶颈并进行优化。 综上所述,“Large-File-Processing-master_javanio_java大文件处理_”项目...

    使用Java_NIO编写高性能的服务器.doc

    - **CPU占用率过高**:如果注册了不感兴趣的事件,可能会导致CPU占用率异常升高。解决办法是确保只注册真正感兴趣的事件类型。 - **避免线程阻塞**:在NIO中,单个线程需要处理多个请求,因此必须避免陷入长时间的...

    java源码:NIO网络框架 xSocket.rar

    - **非阻塞I/O**:xSocket利用Java NIO的非阻塞特性,即使在处理大量并发连接时,也能保持较低的CPU占用。 - **高性能**:通过优化的I/O模型和线程管理,xSocket能提供高吞吐量和低延迟的网络通信。 - **易于使用...

    基于NIO的Java聊天室2

    接下来,我们要解决的是上一版本中的一个严重问题:当两个客户端同时启动时,CPU占用率高达100%。这通常是由于线程资源的不当使用导致的。在NIO中,通常我们会使用Selector(选择器)来监听多个通道(Channel)的...

    ScalableIOJava(NIO如何实现Selector模式的).pdf

    这种方式对于小型应用来说效率尚可,但在高并发环境下,创建大量线程会迅速耗尽系统资源,因为线程的创建、销毁和调度都会占用大量的CPU和内存资源。这就引出了NIO的优势,尤其是Selector模式的应用。 文档中通过一...

    NIO处理大文件

    相较于传统的IO,NIO在处理大文件时通常具有更高的吞吐量和更低的CPU占用。尤其是在处理高并发、大数据量的场景下,NIO的优势更为明显。 9. 注意事项: 虽然NIO提供了强大的性能优化,但它的API相对复杂,使用时...

    Java中的IO与NIO-jiava求职面试-15题,答案

    多路复用IO,如Java的NIO,通过选择器轮询检查多个通道,仅在有事件时进行实际IO操作,有效减少了资源消耗,适合高并发场景。 信号驱动IO是一种操作系统级别的IO模型,当数据准备好时,操作系统发送一个信号通知...

    nio压力测试

    6. **性能指标**:如吞吐量(每秒处理的请求数)、延迟(请求到响应的时间)、CPU占用率、系统负载等都是衡量NIO性能的重要指标。测试过程中需记录并分析这些数据。 7. **基准工具**:“nio-benchmark”可能是一个...

    分布式Java应用开发技术总结

    3.5.1. CPU消耗分析:通过CPU剖析工具,找出CPU占用率高的代码段进行优化。 3.5.2. 文件IO分析:监控文件读写操作,优化文件访问策略,如使用缓冲、异步I/O等。 3.5.3. 网络IO分析:检查网络通信效率,如使用高效的...

    Java版的资源管理器

    NIO(New Input/Output)是Java 1.4引入的新特性,旨在提供一种更高效的数据传输方式。`java.nio.file`包提供了`Files`和`Paths`等类,可以更方便地进行文件操作。例如,`Files.list(Paths.get(directoryPath))`能...

    使用nio导出千万大数据

    "使用NIO导出千万大数据"这一主题,主要聚焦于Java的New IO(Non-blocking Input/Output)框架如何在处理大规模数据时提供高性能和低内存占用的解决方案。下面我们将深入探讨NIO在大数据导出中的应用及其优势。 NIO...

    java高并发笔记.docx

    【Java高并发笔记】 在Java开发中,处理高并发场景是一项关键技能,涉及到多个核心概念。以下是关于同步、异步、并发、并行、临界区、阻塞、非阻塞以及死锁、饥饿和活锁的详细解释。 1. **同步与异步** - **同步*...

    基于java的防QQ即时通信系统源码

    - 通过Java Profiler(如VisualVM)分析系统性能,优化内存使用和CPU占用。 以上是基于Java构建防QQ即时通信系统时涉及的一些核心知识点,实际开发过程中还需要结合具体的业务需求和团队协作方式进行详细的设计和...

    android开发进阶之NIO非阻塞包

    2. **提高系统资源利用率**:NIO减少了因阻塞而导致的CPU空闲时间,提高了CPU的利用率。同时,减少了线程数量也意味着减少了内存占用,从而提高了系统的整体性能。 3. **易于扩展**:NIO的设计允许应用程序通过添加...

    Java高并发高性能分布式框架从无到有微服务架构设计.docx

    另外,NIO(非阻塞I/O)和AIO(异步I/O)也是提高并发性能的关键技术,它们可以显著减少I/O操作对CPU的占用,提升系统吞吐量。 高性能往往需要配合缓存策略来实现。例如,使用Redis或Memcached作为分布式缓存,可以...

Global site tag (gtag.js) - Google Analytics