Home PHP Framework ThinkPHP Thinkphp and laravel performance comparison

Thinkphp and laravel performance comparison

Dec 24, 2019 pm 03:03 PM
laravel thinkphp

Thinkphp and laravel performance comparison

ThinkPHP is a fast, compatible and simple lightweight domestic PHP development framework. It is released under the Apache2 open source agreement. It is transplanted from the Struts structure and improved and perfected. It also draws lessons from It adopts many excellent foreign frameworks and patterns, uses object-oriented development structure and MVC pattern, and integrates the ideas of Struts and TagLib (tag library), RoR's ORM mapping and ActiveRecord pattern.

Laravel is a simple and elegant PHP Web development framework (PHP Web Framework). It can free you from messy codes like noodles; it can help you build a perfect network APP, and every line of code can be concise and expressive.

Performance comparison between thinkphp and laravel:

Performance test

Test time: May 6, 2016

Test tool: siege (because of the MAC system ab always encounters the error pr_socket_recv: Connection reset by peer (54), so I chose siege)

Test machine: MacPro Core i5 processor/8GB memory/256GB SSD flash memory

Test Environment: Apache PHP5.6

Framework version: ThinkPHP 3.2.3 Laravel 5.2

Testing principle: Each test loops 5 times, taking medium data

Supplementary instructions: All Projects are all placed in subdirectories

Result Description

Transactions: 2119 hits Total number of requests processed

Availability: 96.85 % Availability

Elapsed time: 9.74 secs Running time

Data transferred: 1.31 MB Data transfer volume

Response time: 0.60 secs Response time

Transaction rate: 217.56 trans/sec Processing per second Efficiency

Throughput: 0.13 MB/sec Processing data per second

Concurrency: 130.28 Concurrency

Successful transactions: 2162 Successful requests

Failed transactions: 69 Failed request

Longest transaction: 2.85 Longest single request

Shortest transaction: 0.01 Shortest single request

Start test

Increase A controller, and enter HelloWorld 10,000 times in the controller

Concurrency 50 loops 10 times:

The first thing that came to us was ThinkPHP, which looked okay

Transactions: 500 hits

Availability: 100.00 %

Elapsed time: 2.81 secs

Data transferred: 52.45 MB

Response time: 0.26 secs

Transaction rate: 177.94 trans/sec

Throughput: 18.67 MB/sec

Concurrency: 47.10

Successful transactions: 500

Failed transactions: 0

Longest transaction: 0.48

Shortest transaction: 0.03

Then Laravle:

Concurrency 200 loops 10 times:

First is ThinkPHP

Transactions: 1977 hits

Availability: 98.85 %

Elapsed time: 10.03 secs

Data transferred : 207.40 MB

Response time: 0.95 secs

Transaction rate: 197.11 trans/sec

Throughput: 20.68 MB/sec

#Concurrency: 187.68

Successful transactions: 1977

Failed transactions: 23

Longest transaction: 1.22

Shortest transaction: 0.02

Then Laravel

Transactions: 1890 hits

Availability: 94.50 %

Elapsed time: 51.85 secs

Data transferred: 198.27 MB

Response time: 4.88 secs

Transaction rate: 36.45 trans/sec

Throughput: 3.82 MB/sec

Concurrency: 178.00

Successful transactions: 1890

Failed transactions: 110

Longest transaction: 26.01

Shortest transaction: 0.07

Unexpectedly, without optimization, ThinkPHP’s The speed is the fastest, Yii is slightly more, and Laravel finished the test at a faltering pace. The results are somewhat unexpected, but the above test only represents the development environment. The framework will be optimized below to simulate the online environment.

Optimization framework

ThinkPHP:

APP_DEBUG is changed to false

Laravel:

APP_DEBUG is changed to false

php artisan route:cache

php artisan optimize

php artisan config:cache

composer dumpautoload -o

Concurrency 200 loops 10 times:

ThinkPHP

Transactions: 1655 hits

Availability: 82.75 %

Elapsed time: 8.21 secs

Data transferred: 173.62 MB

Response time: 0.69 secs

Transaction rate: 201.58 trans/sec

Throughput: 21.15 MB/sec

#Concurrency: 139.29

Successful transactions: 1655

Failed transactions: 345

Longest transaction: 7.83

Shortest transaction: 0.00

Laravel:

Transactions: 1520 hits

Availability: 76.00 %

Elapsed time: 34.95 secs

Data transferred: 159.45 MB

Response time: 3.15 secs

Transaction rate: 43.49 trans/sec

Throughput: 4.56 MB/sec

Concurrency: 136.84

Successful transactions: 1520

Failed transactions: 480

Longest transaction: 19.18

Shortest transaction: 0.00

The strange thing is that when the framework turns off the debugging mode, a relatively large error occurs. Many failures. However, it is obvious that after simple optimization, Laravel's performance has been greatly improved, but it is still lower than the other two frameworks.

in conclusion:

ThinkPHP’s performance is nearly four times higher than Laravel.

php Chinese website, a large number of free laravel introductory tutorials, welcome to learn online!

The above is the detailed content of Thinkphp and laravel performance comparison. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to get the return code when email sending fails in Laravel? How to get the return code when email sending fails in Laravel? Apr 01, 2025 pm 02:45 PM

Method for obtaining the return code when Laravel email sending fails. When using Laravel to develop applications, you often encounter situations where you need to send verification codes. And in reality...

ThinkPHP6 routing: How to completely obtain URL parameters containing special characters such as Chinese? ThinkPHP6 routing: How to completely obtain URL parameters containing special characters such as Chinese? Apr 01, 2025 pm 02:51 PM

ThinkPHP6 routing parameters are processed in Chinese and complete acquisition. In the ThinkPHP6 framework, URL parameters containing special characters (such as Chinese and punctuation marks) are often processed...

Laravel Eloquent ORM in Bangla partial model search) Laravel Eloquent ORM in Bangla partial model search) Apr 08, 2025 pm 02:06 PM

LaravelEloquent Model Retrieval: Easily obtaining database data EloquentORM provides a concise and easy-to-understand way to operate the database. This article will introduce various Eloquent model search techniques in detail to help you obtain data from the database efficiently. 1. Get all records. Use the all() method to get all records in the database table: useApp\Models\Post;$posts=Post::all(); This will return a collection. You can access data using foreach loop or other collection methods: foreach($postsas$post){echo$post->

How to effectively check the validity of Redis connections in Laravel6 project? How to effectively check the validity of Redis connections in Laravel6 project? Apr 01, 2025 pm 02:00 PM

How to check the validity of Redis connections in Laravel6 projects is a common problem, especially when projects rely on Redis for business processing. The following is...

Laravel Introduction Example Laravel Introduction Example Apr 18, 2025 pm 12:45 PM

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

Laravel database migration encounters duplicate class definition: How to resolve duplicate generation of migration files and class name conflicts? Laravel database migration encounters duplicate class definition: How to resolve duplicate generation of migration files and class name conflicts? Apr 01, 2025 pm 12:21 PM

A problem of duplicate class definition during Laravel database migration occurs. When using the Laravel framework for database migration, developers may encounter "classes have been used...

Comparison of Redis queues and MySQL stability: Why is Redis prone to data loss? Comparison of Redis queues and MySQL stability: Why is Redis prone to data loss? Apr 01, 2025 pm 02:24 PM

Comparison of Redis queues and MySQL stability: Why is Redis prone to data loss? In the development environment, using PHP7.2 and ThinkPHP frameworks, we often face the choice of cooperation...

How to query the sum of two columns of data at the same time in ThinkPHP6? How to query the sum of two columns of data at the same time in ThinkPHP6? Apr 01, 2025 pm 02:54 PM

ThinkPHP6 database query: How to use TP6 to implement SQL statements SELECTSUM(jin), SUM(chu)FROMsysdbuil In ThinkPHP6 framework, how to use SQL statement SELECT...

See all articles