-
100万并发连接服务器笔记之Java Netty处理1M连接会怎么样
五 100万并发连接服务器笔记之Java Netty处理1M连接会怎么样 2014年05月21日 14:13:56 mergerly 阅读数:20545 前言 每一种该语言在某些极限情况下的表现一般都不太一样,那么我常用的Java语言,在达到100万个并发连接情况下,会怎么样呢,有些好奇,更有些期盼。 这次使用经常使用的顺手的netty NIO框架(netty-3.6.5.Final),封装的很好…- 5
- 0
-
JVM内存管理——GC算法精解(分代搜集算法)
引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极。说不定若干年以后,还会有新的终极算法,而且几乎是一定会有,因为LZ相信高人们的能力。 那么分代搜集算法是怎么处理GC的呢? 对象分类 上一章已经说过,分代搜集算法是针对对象的不同特性,而使用适合的算法,这里面并没有实际上的新算法产生。与其说分代搜…- 2
- 0
-
Java 内存分配全面浅析
本文将由浅入深详细介绍Java内存分配的原理,以便更轻松的学习Java。 Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,JVM是Java程序和操作系统之间的桥梁。JVM实现了Java的平台无关性。 简单通俗的讲,一个完整的Java程序运行过程会涉及以下内存区域: l **寄存器:**JVM内部虚拟寄存器,存取速度非常快,程序不可控制。 l **栈:**保…- 10
- 0
-
JAVA之旅(十九)——ListIterator列表迭代器,List的三个子类对象,Vector的枚举,LinkedList,ArrayList和LinkedList的小练习
JAVA之旅(十九)——ListIterator列表迭代器,List的三个子类对象,Vector的枚举,LinkedList,ArrayList和LinkedList的小练习 关于数据结构,所讲的知识太多了,我们只能慢慢的来分析了 一.ListIterator列表迭代器 ListIterator列表迭代器是个什么鬼?我们通过一个小例子来认识他 1package com.lgl.hellojava;…- 8
- 0
-
JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖
JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖 一.单例设计模式 什么是设计模式? JAVA当中有23种设计模式,解决某一问题最有效的方法 单例设计模式 解决一个类在内存中只存在一个对象 想要保证对象唯一该怎么做》 1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象 2.还为了让其他程序访问到该类对象,只好在本类中自定义一个对象 3…- 7
- 0
-
【基础+实战】JVM原理及优化系列之九:JVM监控、分析与故障处理实战
1. 监控工具 jvisualvm(JDK内置) jconsole(JDK内置) jmc(JDK内置) Jprofile(第三方) Eclipse Memory Analyzer JvisualVM插件 2. JAVA命令行工具 2.1 jps虚拟机进程状况工具 常用的几个参数: -l 输出 java 应用程序的 main class 的完整包 -q 仅显示 pid ,不显示其它任何相关信…- 5
- 0
-
JVM性能优化系列-(3) 虚拟机执行子系统
目前已经更新完《Java并发编程》,《Docker教程》和《JVM性能优化》,欢迎关注【后端精进之路】,轻松阅读全部文章。 Java并发编程: Java并发编程系列-(1) 并发编程基础 Java并发编程系列-(2) 线程的并发工具类 Java并发编程系列-(3) 原子操作与CAS Java并发编程系列-(4) 显式锁与AQS Java并发编程系列-(5) Java并发容器 Java并发编程系列-…- 10
- 0
-
【开发工具】JAVA性能分析:2、超详细的JProfiler数据分析(官方中文版)
此页是根据官方的英文版进行的对照翻译。重要信息用红色加粗进行了标记。 Recording Data——记录数据 一、Scalar values and telemetries 从分析器的角度来看,最不成问题的数据形式是标量值,例如活动线程数或打开JDBC连接数。JProfiler可以用固定的宏观频率(通常每秒一次)对这些值进行采样,并向您展示随时间的演变。在JProfiler中,…- 99
- 0
-
深入分析 Java I/O 的工作机制(网络 I/O 优化)
深入分析 Java I/O 的工作机制(网络 I/O 优化) 网络 I/O 优化 网络 I/O 优化通常有一些基本处理原则: 一个是减少网络交互的次数:要减少网络交互的次数通常我们在需要网络交互的两端会设置缓存,比如 Oracle 的 JDBC 驱动程序,就提供了对查询的 SQL 结果的缓存,在客户端和数据库端都有,可以有效的减少对数据库的访问。关于 Oracle JDBC 的内存管理可以参考《 …- 0
- 0
-
java字符串分割性能比较
关于字符串的分割,我用jdk的split、apache的common的split、正则表达式、StringTokenizerr以及substring做了以下比较,比较的时间为纳秒,用一个字符串“192.168.20.121”作为示例, 打印时间为: 使用jdk的split切分字符串 192 168 20 121 花费时间1086171 使用common的split切分字符串 192 16…- 3
- 0
-
Netty源码分析第4章(pipeline)—->第5节: 传播outbound事件
Netty源码分析第五章: pipeline 第五节: 传播outBound事件 了解了inbound事件的传播过程, 对于学习outbound事件传输的流程, 也不会太困难 在我们业务代码中, 有可能使用wirte方法往写数据: 1public void channelActive(ChannelHandlerContext ctx) throws Exception { 2 ctx.c…- 3
- 0
-
Netty源码分析第3章(客户端接入流程)—->第4节: NioSocketChannel注册到selector
Netty源码分析第三章: 客户端接入流程 第四节: NioSocketChannel注册到selector 我们回到最初的NioMessageUnsafe的read()方法: 1public void read() { 2 //必须是NioEventLoop方法调用的, 不能通过外部线程调用 3 assert eventLoop().inEventLoop(); 4 //服务端cha…- 2
- 0
-
Mina、Netty、Twisted一起学(八):HTTP服务器
HTTP协议应该是目前使用最多的应用层协议了,用浏览器打开一个网站就是使用HTTP协议进行数据传输。 HTTP协议也是基于TCP协议,所以也有服务器和客户端。HTTP客户端一般是浏览器,当然还有可能是其他东西。HTTP服务器,也就是Web服务器,目前已经有很多成熟的产品,例如Apache HTTP Server、Tomcat、Nginx、IIS等。 本文的内容不是讲解如何使用以上的HTTP服务器,…- 3
- 0
-
JVM内存管理——GC算法精解(五分钟教你终极算法—分代搜集算法)
引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极。说不定若干年以后,还会有新的终极算法,而且几乎是一定会有,因为LZ相信高人们的能力。 那么分代搜集算法是怎么处理GC的呢? 对象分类 上一章已经说过,分代搜集算法是针对对象的不同特性,而使用适合的算法,这里面并没有实际上的新算法产生。与其说分代搜…- 4
- 0
-
Java堆内存的10个要点
Java中的堆空间是什么? 当Java程序开始运行时,JVM会从操作系统获取一些内存。JVM使用这些内存,这些内存的一部分就是堆内存。堆内存通常在存储地址的底层,向上排列。当一个对象通过new关键字或通过其他方式创建后,对象从堆中获得内存。当对象不再使用了,被当做垃圾回收掉后,这些内存又重新回到堆内存中。要学习垃圾回收,请阅读”Java中垃圾回收的工作原理”。 如何增加Java堆空间 在大多数…- 2
- 0
-
JAVA之旅(三十三)——TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录
JAVA之旅(三十三)——TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录 我们继续网络编程 一.TCP 说完UDP,我们就来说下我们应该重点掌握的TCP了 TCP传输 Socket和ServiceSocket 建立客户端和服务端 建立连接后,通过Socket中的IO流进行数据的传输 关闭Socket 同样的,我们的客户端和服务端都是两个独立的应用 我们通过查阅API文档发…- 4
- 0
-
c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast
c++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast dynamic_cast: 通常在基类和派生类之间转换时使用 const_cast: 主要针对const和volatile的转换 static_cast: 一般的转换(no run-time check)通常,如果你不知道该用哪个,就用这个。 reint…- 0
- 0
-
【基础+实战】JVM原理及优化系列之八:如何查看JVM参数配置?
1. 查看JAVA版本信息 2. 查看JVM运行模式 在 $JAVA_HOME/jre/bin 下有 client 和 server 两个目录,分别代表 JVM 的两种运行模式。 client****运行模式 ,针对桌面应用,加载速度比server模式快10%,而运行速度为server模式的10分之一。client下默认的堆容量 -Xms1M -Xmx64M ** server****…- 46
- 0
-
JVM性能优化系列-(2) 垃圾收集器与内存分配策略
目前已经更新完《Java并发编程》,《Docker教程》和《JVM性能优化》,欢迎关注【后端精进之路】,轻松阅读全部文章。 Java并发编程: Java并发编程系列-(1) 并发编程基础 Java并发编程系列-(2) 线程的并发工具类 Java并发编程系列-(3) 原子操作与CAS Java并发编程系列-(4) 显式锁与AQS Java并发编程系列-(5) Java并发容器 Java并发编程系列-…- 5
- 0
-
【开发工具】JAVA性能分析:1、超详细的JProfiler安装使用(具体数据分析见2)
一、JProfiler简单介绍 JProfiler是由ej-technologies GmbH公司开发的一款性能瓶颈分析工具(该公司还开发部署工具)。 其特点: 1、使用方便,界面操作友好 2、对被分析的应用影响小 3、CPU,Thread,Memory分析功能尤其强大,支持对jdbc,noSql, jsp, servlet, socket等进行分析 4、支持多种模式(离线,在线)的分析 5、跨平…- 39
- 0
-
Java性能调优(三):程序执行和JVM调优
程序执行慢情况分析 有些情况是资源消耗不多,但程序执行仍然慢,这种现象多出现访问量不是非常大的情况下,造成这种原因有三种: 锁竞争激烈 锁竞争激烈直接会造成程序执行慢。例如一个典型的例子是数据库连接池,通常数据库连接池提供的连接数是有限的。 未充分使用硬件资源 可以优化程序,充分发挥硬件资源的座椅哦难过,此时可进行一定的优化充分使用硬件资源,提升程序的执行速度。 数据量的增长 数据量增长通常也是造…- 10
- 0
-
Java性能调优工具——Jstack
一、命令说明 Jstack是Jdk自带的线程跟踪工具,用于打印指定Java进程的线程堆栈信息。 二、参数说明 1jstack -l [pid] 2 3 注意:windows环境只支持这么一个参数 三、使用示例 jstack -l 5524 > c:\users\Administrator\Desktop\jstack.txt 12018-09-14 12:59:46 2Full thread…- 19
- 0
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!