优化 Laravel 网站打开速度

1.关闭debug
打开.env文件,把debug设置为false.
APP_ENV=local
APP_DEBUG=false
APP_KEY=base64:sT/aTFeaE13eyao1Raee6jC9Ff+Yle1SE+wtyk0H6B4=

2.缓存路由和配置
php artisan route:cache
php artisan config:cache

3.Laravel优化命令
php artisan optimize

4.composer优化
sudo composer dump-autoload optimize

5.使用Laravel缓存
使用Laravel的Cache方法缓存内容,有文件缓存,数据库缓存,redis缓存,使用redis也可以用predis组件,也可以多种缓存方式结合。在Laravel中使用缓存就是这么优雅方便:
$lists = Cache::remember('travel.destination.lists', 20, function () {
    return $this-destination-getList();
});

6.使用CDN
本站用的是七牛CDN,每月送你20G流量和20G存储空间,具体多少不记得了,总之对于小站来说完全足够了。

7.使用PHP 7并开启OPcache

8.nginx开启gzip压缩


更多...

Laravel 5 性能优化技巧

性能一直是 Laravel 框架为人诟病的一个点,所以调优 Laravel 程序算是一个必学的技能。

接下来分享一些开发的最佳实践,还有调优技巧,大家有别的建议也欢迎留言讨论。

这里是简单的列表:

生成配置信息缓存
php artisan config:cache

生成路由缓存
php artisan route:cache

生成类映射加载优化
php artisan optimize --force

自动加载优化
php composer dumpautoload

使用 Memcached 来存储会话 config/session.php
使用专业缓存驱动器 config/cache.php
数据库请求优化
为数据集书写缓存逻辑
使用即时编译器(JIT),如:HHVM、OpCache
前端资源合并 Elixir
1. 配置信息缓存
使用以下 Artisan 自带命令,把 
更多...

查看 OpenCV 当前的指令集优化状态

//设置是否启用指令集优化特性
//cv::setUseOptimized(true);
//获取当前机器的CPU指令集支持特性
bool opt_status = cv::useOptimized();
cout < < "当前的指令集优化状态:" << opt_status << endl; //检查硬件支持 volatile bool simd = checkHardwareSupport(CV_CPU_SSE); cout << "HardwareSupport(CV_CPU_SSE): " << simd << endl; simd = checkHardwareSupport(CV_CPU_MMX); cout << "HardwareSupport(CV_CPU_MMX): " << simd << endl; simd = checkHardwareSupport(CV_CPU_SSE2); cout << "HardwareSupport(CV_CPU_SSE2): " << simd << endl; simd = checkHardwareSupport(CV_CPU_SSE3); cout << "HardwareSupport(CV_CPU_SSE3): " << simd << endl; simd = checkHardwareSupport(CV_CPU_SSSE3); cout << "HardwareSupport(CV_CPU_SSSE3): " << simd << endl; simd = checkHardwareSupport(CV_CPU_SSE4_1); cout << "HardwareSupport(CV_CPU_SSE4_1): " << simd << endl; simd = checkHardwareSupport(CV_CPU_SSE4_2); cout << "HardwareSupport(CV_CPU_SSE4_2): " << simd << endl; simd = checkHardwareSupport(CV_CPU_POPCNT); cout << "HardwareSupport(CV_CPU_POPCNT): " << simd << endl; simd = checkHardwareSupport(CV_CPU_AVX); cout << "HardwareSupport(CV_CPU_AVX): " << simd << endl; return getchar();

更多...

Keyboard Hook

.h
class CFullWindowDlg : public CDialogEx
{
...
void SetHook();
}


.cpp
///全局变量
HWND g_hWnd = NULL;             //窗口句柄
HHOOK g_hlowKeyHook = NULL;     //低级键盘钩子句柄
LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);
///


//安装钩子  
void CFullWindowDlg::SetHook()  //为了操作窗体,我们将主窗体的句柄传进去  
{
	g_hWnd = this-
更多...