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!

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

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

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

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 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...

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 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 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.

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? In the development environment, using PHP7.2 and ThinkPHP frameworks, we often face the choice of cooperation...

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...
