PHP通过JAVA桥使用连接池提高性能
原文:http://hi.baidu.com/zhangsilly/item/48ee731080ac36cc39cb30ab 我一直在寻求一个连接池解决方案,特别是在主要使用Oracle之后 注意:以下观点仅来自于小量的benchmark 测试环境: 1G RAM Intel Pentium D 2.8G(双核) OS: Windows XP (Linux机器效率
原文:http://hi.baidu.com/zhangsilly/item/48ee731080ac36cc39cb30ab
我一直在寻求一个连接池解决方案,特别是在主要使用Oracle之后
注意:以下观点仅来自于小量的benchmark
测试环境:
1G RAM
Intel Pentium D 2.8G(双核)
OS: Windows XP (Linux机器效率应该高一些,因为Linux可以通过java.so扩展连接Bridge,测试采用Pure PHP的代码连接的Bridge)
PHP:5.29
MySQL5
Oracle 10g
PHP JavaBridge 5.411
Tomcat 6.018
Java SDK 1.60 update 11
自从使用Java桥之后,我一直想为PHP找一个连接池来解决现在遇到的问题(现在很多东西运行在Oracle上,PHP搭配Oracle真的比想象得要慢好多)。很容易,通过php java桥使用连接池非常简单(废话,PHP通过socket和java打交道,将资源交给java管理就可以了),测试结果如下:
对MySQL:
PHP直连MySQL:1100 ~ 1300 次请求/秒
PHP通过Java桥、DBCP连接MySQL:250 ~ 300 次请求/秒
对Oracle:
PHP直连:30 ~ 33 次请求/秒
PHP通过Java桥、DBCP连接Oracle:120 ~ 135 次请求/秒
上面的测试,发现如果使用MySQL的话,还真是用不着数据库连接池(这种通过Bridge的中间环节过多,还设计到数据的包装、解包操作)。如果使用Oracle的话,数据库连接池就大有可为了(即使增加了本地的请求,数据包装、解包等操作,仍然还是值得的),使用连接池之后,性能真的大幅上升(并未采用 prepareStatement 软解析预编译语句、SQL语句全部 hard code, 没有开启 poolPreparedStatements 缓冲)。
数据库连接池直接采用Tomcat自带的DBCP完成,配置默认,增加removeAbandoned=true validationQuery="select 1 from dual"。为保证公平性,直连、Bridge均执行想听那个的SQL并完成绝对相同的流程。

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Java 8 introduces the Stream API, providing a powerful and expressive way to process data collections. However, a common question when using Stream is: How to break or return from a forEach operation? Traditional loops allow for early interruption or return, but Stream's forEach method does not directly support this method. This article will explain the reasons and explore alternative methods for implementing premature termination in Stream processing systems. Further reading: Java Stream API improvements Understand Stream forEach The forEach method is a terminal operation that performs one operation on each element in the Stream. Its design intention is

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Java Made Simple: A Beginner's Guide to Programming Power Introduction Java is a powerful programming language used in everything from mobile applications to enterprise-level systems. For beginners, Java's syntax is simple and easy to understand, making it an ideal choice for learning programming. Basic Syntax Java uses a class-based object-oriented programming paradigm. Classes are templates that organize related data and behavior together. Here is a simple Java class example: publicclassPerson{privateStringname;privateintage;

Java is a popular programming language that can be learned by both beginners and experienced developers. This tutorial starts with basic concepts and progresses through advanced topics. After installing the Java Development Kit, you can practice programming by creating a simple "Hello, World!" program. After you understand the code, use the command prompt to compile and run the program, and "Hello, World!" will be output on the console. Learning Java starts your programming journey, and as your mastery deepens, you can create more complex applications.

Capsules are three-dimensional geometric figures, composed of a cylinder and a hemisphere at both ends. The volume of the capsule can be calculated by adding the volume of the cylinder and the volume of the hemisphere at both ends. This tutorial will discuss how to calculate the volume of a given capsule in Java using different methods. Capsule volume formula The formula for capsule volume is as follows: Capsule volume = Cylindrical volume Volume Two hemisphere volume in, r: The radius of the hemisphere. h: The height of the cylinder (excluding the hemisphere). Example 1 enter Radius = 5 units Height = 10 units Output Volume = 1570.8 cubic units explain Calculate volume using formula: Volume = π × r2 × h (4
