如何優雅地為程序中的變量和函數命名?
個人覺得,程序中的變量和函數的命名,優雅是一方面,更重要的是,要簡介易懂,最好使用英文單詞,如果實在對英語不太懂,那就用拼音,當然,用拼音是不太優雅了。并且有統一的風格,比如類名采用大駝峰命名法:classTotalData,方法名采用小駝峰:publicfunctiong
LNMP會出現內存泄漏嗎?
偶然間接觸到內存泄漏這個詞,最近也在學習Java,想問下lnmp會出現內存泄漏嗎?
首先:什么是LNMP
LNMP一鍵安裝包是一個用LinuxShell編寫的可以為CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/MintLinuxVPS或獨立主機安裝LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生產環境的Shell程序。
目前一鍵包中包含的數據庫是MariaDB。
包含:Nginx/MariaDB/PHP三大組件。還有類似eAccelerator、xcache、memcached、imageMagick、ionCube、redis、opcache等擴展組件。
nginx、MariaDB、php是比較成熟的產品,使用長期支持版本上基本上會杜絕內存泄漏問題。但是PHP屬于高級語言,語言級別并沒有內存的概念,在使用過程中完全不需要主動申請或釋放內存,所以在PHP用戶代碼級別也就不存在內存泄漏的概念了。但畢竟PHP是使用C編寫的解釋器,而C語言的程序是可能出現內存泄漏問題,所以本質上還是一樣的。如果你的PHP程序內存泄漏了,會有三種可能:
1、可能是自己的代碼有問題,比如沒有及時釋放大內存的變量等。
2、很多公司都會有自己的PHP擴展,而擴展通常也使用C/C來編寫,這樣擴展本身也可能會因為內存不正確釋放而導致內存泄漏。
3、有些擴展是對第三方庫的一種包裹,比如PHP的sqlite數據庫操作接口主要是在libsqlite之上進行了封裝,所以如果libsqlite本身有內存泄漏的話,那也可能會帶來問題。
擴展組件eACcelerator、xcache、memcached、imageMagick、ionCube、redis、opcache等也可能存在內存泄漏問題。經常關注安全網站如:國家信息安全漏洞共享平臺:CVE: