Home  >  Article  >  Backend Development  >  PHP session_start() is very slow problem analysis and solution_PHP tutorial

PHP session_start() is very slow problem analysis and solution_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:43:091229browse

This article will introduce to you the analysis and solutions to the slow problem of PHP session_start(). I hope that students who encounter this problem can refer to it.


I recently discovered a problem when I was making something

One interface is down, and when testing the access address, the browser is always waiting for a response

No matter how you access it, you can only restart the web server.

If you do not restart the web server for code debugging, you will always find that it cannot continue during session_start()

The cause of the problem was finally understood:

Because the request sent by the browser still establishes a thread in the web server to process the request, because the session is stored on the server side

The fact that the browser is waiting for a response indicates that the web server is processing your request, but because the response timeout is very long, you may need to debug it next time.

Before the previous request dies, it has been occupying your session resources, and session resources cannot be shared. If you request again, you will always be waiting for the session resources to be obtained.

That is to say, only when your last request ends can you obtain the session resources normally and enter the code analysis


I used to find that calling the session_start() method on a PHP page was very slow, even taking dozens of seconds. Now I finally found the reason.

Solution


Because the session uses files, the Session file will be locked when multiple requests are made. Try to release the Session as soon as possible when it is not in use.
Use the session_write_close() method

For example

The code is as follows
 代码如下 复制代码

session_start(); //starts the session
$_SESSION['user']="Me";
session_write_close();   // close write capability
echo $_SESSION['user']; // you can still access it

Copy code
session_start(); //starts the session $_SESSION['user']="Me";

session_write_close(); // close write capability

echo $_SESSION['user']; // you can still access it http://www.bkjia.com/PHPjc/633201.html
www.bkjia.comtrue
http: //www.bkjia.com/PHPjc/633201.htmlTechArticleThis article will introduce to you the analysis and solutions to the slow problem of PHP session_start(). I hope to encounter Students with this problem can enter for reference. Recently when I was making something, I discovered something...
Statement:
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