摘要:
常用的三种缓存淘汰(失效)算法:FIFO,LFU 和 LRU. 1 FIFO(First In First Out) 先进先出,也就是淘汰缓存中最老(最早添加)的记录。FIFO 认为,最早添加的记录,其不再被使用的可能性比刚添加的可能性大。这种算法的实现也非常简单,创建一个队列,新增记录添加到队尾, 阅读全文
摘要:
为什么需要“池”呢?程 序运行的本质,就是通过使用系统资源(CPU、内存、网 络、磁盘等)来完成信息的处理,比如在 JVM 中创建一个对象实例需要消耗 CPU 和内存资源,如果你的程序需要频 繁创建大量的对象,并且这些对象的存活时间短,就意味着 需要进行频繁销毁,那么很有可能这部分代码会成为性能的 阅读全文
摘要:
Tomcat 支持的连接器有 NIO、NIO.2 和 APR。跟 NioEndpoint 一样,AprEndpoint 也实现了非阻塞 I/O,它们的区别是:NioEndpoint 通过调用 Java 的 NIO API 来实现非阻塞 I/O,而 AprEndpoint 是通过 JNI 调用 APR 阅读全文
摘要:
异步最大的特点 是,应用程序不需要自己去触发数据从内核空间到用户空间的拷贝。为什么是应用程序去“触发”数据的拷贝,而不是直接从内核拷贝数据呢?这是因为应用程 序是不能访问内核空间的,因此数据拷贝肯定是由内核来做,关键是谁来触发这个动作。是内核主动将数据拷贝到用户空间并通知应用程序。还是等待应用程序通 阅读全文