簡體   English   中英

如何優化服務器以使用許多正則表達式操作

[英]How to optimize server for use of many regular expressions operations

由於CPU使用率過高,我的服務器運行緩慢。 我已經將高CPU使用率的來源追溯到幾個原因:

  • 數據集上的大量正則表達式函數。
  • strpos,substr操作。
  • 循環遍歷數組以進行基本的數學運算。

在我的網站上進行一次搜索需要所有這些操作。 如果訪問者進行搜索,則CPU會達到100%。 關於這些操作,我無能為力,因為它們是必需的。

我的問題:

  • 鑒於上述操作幾乎是所有CPU使用的原因,配置文件(例如httpd.conf或php.ini)的最佳方法是什么?
  • 鑒於上述操作幾乎是所有CPU使用的原因,升級服務器的最佳方法是什么?

更新1:

一個操作的例子是:

preg_match_all('/ValuesBreakdown_\d+_[A-Z]+_out.push\(([\d.,]+)/',$content,$matches);

這個單一的操作並沒有使用大量的CPU,但是這種操作的大量增加了。

面對性能問題時,請始終確保原因確實是您認為的原因。

我建議首先使用XDebug + webgrind並確認原因。

然后,您可能能夠更改代碼的邏輯流程以改進性能:例如,您是否循環了幾次數據集而不是一次? 您確定無法改進算法嗎? 等等..

每次使用XDebug向自己證明你實際上提高了性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM