线程

第 7 章 Web Server Optimization

01-01
目录 7.1. ulimit 7.1.1. open files 7.2. khttpd 7.3. php.ini 7.3.1. Resource Limits 7.3.2. File Uploads 7.3.3. Session Shared 7.3.4. PATHINFO 7.4. APC Cache (php-apc - APC (Alternative PHP Cache) module for PHP 5) 7.5. Zend Optimizer 7.6. eaccelerator 系

3.2. Module

01-01
模块的做用如下: mod_access 提供基于主机的访问控制命令 mod_actions 能够运行基于MIME类型的CGI脚本或HTTP请求方法 mod_alias 能执行URL重定向服务 mod_asis 使文档能在没有HTTP头标的情况下被发送到客户端 mod_auth 支持使用存储在文本文件中的用户名.口令实现认证 mod_auth_dbm 支持使用DBM文件存储基本HTTP认证 mod_auth_mysql 支持使用MySQL数据库实现基本HTTP认证 mod_auth_anon 允许

Linux性能评测工具之一:gprof篇

12-30
 这些天自己试着对项目作一些压力测试和性能优化,也对用过的测试工具作一些总结,并把相关的资料作一个汇总,以便以后信手拈来! 1 简介 改进应用程序的性能是一项非常耗时耗力的工作,但是究竟程序中是哪些函数消耗掉了大部分执行时间,这通常都不是非常明显的.GNU 编译器工具包所提供了一种剖析工具 GNU profiler(gprof).gprof 可以为 Linux平台上的程序精确分析性能瓶颈.gprof精确地给出函数被调用的时间和次数,给出函数调用关系. gprof 用户手册网站 http://so

【Spring实战】—— 3 使用facotry-method创建单例Bean总结

12-05
如果有这样的需求: 1 不想再bean.xml加载的时候实例化bean,而是想把加载bean.xml与实例化对象分离. 2 实现单例的bean 以上的情况,都可以通过工厂方法factory-method来创建bean. 这样再加载bean.xml时,不会直接实例化bean,而是当调用factory-method所指的方法时,才开始真正的实例化. 首先看一下传统的单例模式的实现方式: 1 最原始的实现单例模式的方法(存在线程不安全): public class SingletonOne { pri

Java程序员的日常 —— 多进程开发IO阻塞问题

12-05
本篇仍旧是源于最近的工作,总结一下纪念那些年埋下的坑... 背景故事 需求:"使用进程方式启动另一个程序!" 开发:"OK! Runtime.getRuntime().exec("xxxx")" 需求:"启动以后能看到输出消息不!" 开发:"OK!" Process process = null; try { process = Runtime.getRuntime().exec("ipconfi

Volatile的作用

12-05
众所周知,volatile关键字可以让线程的修改立刻通知其他的线程,从而达到数据一致的作用.那么它具体涉及到哪些内容呢? 关于缓存 计算机最大的存储空间就是磁盘(硬盘),但是访问的速度也是最慢的,价格最便宜:再就是内存,容量更小,造价更高,但是速度也更快.不过跟cpu的计算速度比起来,那就太慢了.可以想像,如果cpu每次计算都要从内存读取数据,那大部分的时间估计都浪费在这上面了.所以就引入了缓存的概: 缓存的结构大概时这样的,从1级到3级速度越来越慢,最后通过总线与内存连接.如果时多核多cpu,

基础才是重中之重~你是否真正理解static对象

12-04
我们挂在嘴过的一句话就是"static是静态对象,在类第一次被使用,或者第一次被实例化时执行",但是你是否真正理解这句话,或者说 你是否有对这句话进行一个实际的验证,如果没有,那我来带您完成这次旅行吧! 首先有一张表,不会经常发生变化,比如分类表,他是一种树型结构表,结构可能是这样 1 /// <summary> 2 /// 分类表 3 /// </summary> 4 public partial class Common_Category : IDataEn

Winform开发框架之通用数据导入导出操作

12-04
做了很多Winform的项目,对于数据导入,一直也有自己的理解,由于一般的业务系统,经常性的数据导入时很正常的业务需求,因为毕竟使用Excel来操作数据也很方便,或者由于系统之间的数据交换需要,我们需要提供一个入口给客户导入所需要的数据.但是导入数据的时候,不同的业务数据对应不同的Excel文件,很难做到统一,但如果是每个业务模型,都创建一个不同的导入界面来操作Excel数据,又会觉得可能某种程度上重复劳动,增加开发及维护成本. 那么有无一种介于两者之间的方法,来实现效率的最优化,并且能够统一利

Nodejs·进程

12-04
之前对这部分的内容很感兴趣,没想到读起来有点晦涩,还是因为对服务器的知识不是很了解. 说道服务器一般人都会想到tomcat或者Jboss或者weblogic,现在流行起来的Node总让人不太放心,JS代码也能做服务器?其实不然,首先一个误区就是Node的服务器是JS写出来的....其实它只有表面暴露给用户使用的模块是用js写的,底层的很多东西还是由C/C++完成的.如果运行在不同的操作系统上,node还会基于操作系统切换底层的实现方式. 再说说Nodejs的特性--最让人印象深刻的就是单线程事件

【面试虐菜】—— JAVA面试题(3)

12-04
1 throws与throw的区别 解析:throws和throw是异常处理时两个常见的关键字,初级程序员常常容易正确理解throw和throws的作用和区别,说明已经能比较深入理解异常处理.Throw用来抛出异常,如果执行了throw语句,程序将发生异常,进入到异常处理机制.Throws用来声明异常,说明这个方法可能会发生某些类型的异常,那么编译器将强制在调用这个方法的时候处理异常.API中的很多方法都使用了throws声明了异常,所以使用这些方法时编译器会提示需要处理异常.   参考答案:t

Oracle二三事之 Oracle SPARC SuperCluster的九大技术优势

12-04
• 运行最快的服务器: SPARC T4计算资源池创造了18项性能世界纪录,全面超越同类产品,单柜128核心.1024线程. • 数据库服务: Oracle独特的智能存储网格拥有高达750K的每秒读写次数(IOPS), 43GB/s 的查询吞吐能力以及高达9.6TB的智能高速闪存卡. • 中间件服务: Oracle中间件云支持提供了10倍的Java 程序运行性能,同时面向Oracle EBS 和 Siebel 管理软件提供4倍的响应速度,并支撑3倍的用户数量. • 同类最佳的存储服务: 集成的Z

[Oracle入门级]知识概况

12-04
oracle各个版本间的主要技术更新 oracle 8 增加数据库创建和存储对象 oracle 8i 整体性能提升 oracle9i 实施应用集群 oracle 10g 支持网格计算 oracle 11g 自我调整 自我管理 oracle后缀中的字母含义: i : 包含internet部署的新功能 g: 专注于新兴的网格计算模型 c: 云服务 cloud oracle中数据库与实例的概念 数据库:信息的物理存储.数据库是物理的,由存储在磁盘中的文件组成 实例:服务器上运行的软件,提供了对数据库的

[logstash-input-redis]插件使用详解

12-04
Redis插件参数配置详解 最小化配置 input { redis { data_type => "list" #logstash redis插件工作方式 key => "logstash-test-list" #监听的键值 host => "127.0.0.1" #redis地址 port => 6379 #redis端口号 } } output { stdout{} } 详细配置 input { redis { bat

[logstash-input-http] 插件使用详解

12-04
插件介绍 Http插件是2.0版本才出现的新插件,1.x是没有这个插件的.这个插件可以帮助logstash接收其他主机或者本机发送的http报文. 插件的原理很简单,它自己启动了一个ruby的服务器,用于接收Http请求.然后会把host(IP地址)和header相关的信息添加到event中. 下面就看看这个插件如何使用吧! 基本配置 先看看默认的配置吧! http {} 简单到心碎啊!其实有很多参数都是默认的... 上面的配置其实相当于: http{ host => "0.0.0.0&q

C#进行MapX二次开发之鹰眼实现

12-04
鹰眼一般是指GIS应用中,系统有两个一大一小的图,小图提供快速定位地图位置的功能,这个是在GIS中应用比较广泛的一个功能,在Google地图中,右下角也有一个小图框,也是指的鹰图.如下图所示.    在本次介绍的例子中,左边是主地图,右边是小地图,即鹰眼. 鹰眼要实现下面几个功能: 1. 主地图变化时,鹰眼也要做出相应的位置变化,以便更好展示位置所在. 2.鹰眼地图移动到任何一个位置,主地图也要做相关联的位置变化,以实现地图的粗略定位. 3.主地图实现鼠标滚轮的变化支持. 首先我们先设置主地图的

图解NodeJS【基于事件、回调的单线程高性能服务器】原理

12-04
刚开始了解Node感觉很吊,各种说高性能,可是一直不理解为什么单线程会比多线程快?为什么异步IO比非阻塞IO快?因此,本篇在阅读相关书籍后,根据自己的理解,整理此文,如有错误,仅代表理论不精,必当修改,以免误导他人.还请多多指正..... 关于阻塞IO和非阻塞IO 系统内核只有两种IO模式-- 阻塞IO和非阻塞IO.这里的IO可不仅仅是读取文件内容,而是更为广泛的概念.比如Socket啊,网络Socket,磁盘读取等等,这些相比于CPU计算都是很耗时的. 下图为阻塞IO的工作模式: 阻塞IO在需

《深入浅出Nodejs》—— 读后总结

12-04
这一个月过去了三分之二,加上之前看过这本书三分之一,这才算是看完. 虽然看完一遍,但是这本书内容很深,以后肯定是还要继续翻阅的..... 什么是Nodejs Nodejs有几个特性:异步IO,事件驱动,单线程,跨平台 异步IO可以保证在CPU计算的同时,异步的加载IO,加快了应用的访问.不像传统的服务器是使用什么阻塞IO啊.轮训IO等等,它相当于在发送处理请求时,直接传一个回调函数,当异步的IO结束后,会自动的执行回调. 事件驱动,则是把粒度降低到事件级别.传统的服务器是一个请求分配一个线程进行

【面试虐菜】—— JAVA面试题(1)

12-04
今天参加笔试,里面有设计模式,和一些基础题! 印象最深的是:什么不是Object的函数,我蒙的finalize,哎,无知! 还问了,接口与抽象类的不同,还有多线程的实现方式!下面基本都有. 另外还问了,观察者模式,设计模式,我一点不会,看来要下功夫了! 1.  面向对象编程的三大特性是什么,请简要阐述 (1).继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继 承了原始类的特性,新类称为原始类

对System V命名信号量的封装类,用于进程/线程间互斥

11-06
最近为了对多进程互斥访问资源,采用System V的命名信号量,为了方便使用,对其用c++进行了封装,代码如下.AOSLock.hpp:#ifndef _AOSLOCK_HPP#define _AOSLOCK_HPP #include <sys/types.h>#include <sys/ipc.h>#include <sys/sem.h>#include <stdio.h>#include <errno.h>#include <stdli

Windows完成端口编程

01-22
一 基本概念设备---Windows操作系统上允许通信的任何东西,比如文件.目录.串行口.并行口.邮件槽.命名管道.无名管道.套接字.控制台.逻辑磁盘.物理磁盘等.绝大多数与设备打交道的函数都是CreateFile/ReadFile/WriteFile等.所以我们不能看到**File函数就只想到文件设备.与设备通信有两种方式,同步方式和异步方式.同步方式下,当调用ReadFile函数时,函数会等待系统执行完所要求的工作,然后才返回:异步方式下,ReadFile这类函数会直接返回,系统自己去完成对