上一节,简单介绍了如何发现性能瓶颈。从这节开始,我会和大家分享我在项目中做的一些性能调优工作。这个系列没有什么顺序可言,觉得什么重要,就说说什么。
这节,我们聊缓存。
最开始接触缓存这个词,是学习硬件知识的时候,cpu有缓存,而且还分一级缓存,二级缓存,三级缓存。、
记得当时老师提了一个很有意思的问题。
问:电脑为什么要有一级缓存,二级缓存……,而且还要有内存,还要有硬盘?...
分类:
编程语言 时间:
2014-06-08 15:44:23
阅读次数:
257
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon
)是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
简介
memcached是一套分布式...
分类:
其他好文 时间:
2014-06-08 10:26:57
阅读次数:
226
volatile关键字表明,即使程序代码没有对内存单元进行修改,其值也可能发生变化。例如,可以将一个指针指向某个硬件位置,其中包含了来自串行端口的时间或信息。在这种情况下,硬件(而不是程序)可能修改其中的内容。或者两个程序可能互相影响,共享数据。该关键字的作用是为了改善编译器的优化能力。例如,假设编译器发现,程序在几条语句中两次使用了某个变量的值,则编译器可能不是让程序查找这个值两次,而是将这个值...
分类:
编程语言 时间:
2014-06-08 05:34:29
阅读次数:
278
对OpenGL有一点了解之后,现在开始真正编写代码。
今天的内容:
使用FreeGLUT创建OpenGL的上下文环境
初始化GLEW
创建一个OpenGL的的模板范例
第一步:
一个OpenGL的上下文可以允许我们传递命令到底层硬件,所以需要一个上下文环境。首先需要配置一个功能窗口,创建一个名为chapter1....
分类:
其他好文 时间:
2014-06-08 04:03:48
阅读次数:
255
要开发一个头像上传的模块,头像上传过程分两步。第一步,相机拍照或者从图库选取照片,产生一个照片,第二步,提供头像剪裁,一般是剪裁为方形的。第三步,上传头像,删除不必要的缓存文件。
拍照和图库选择照片都可以使用系统的方案。自制相机可以搞滤镜,这个开发成本比较大,一般的APP也不用支持。图库选择照片这个可以自己做,访问sd卡,比较简单。问题出在图片剪裁上。网上有一些技术方案,迁移过来之后,效果不好,比如缩放的敏感度问题,缩放之后剪裁不准确的问题,缩放不流畅的问题。后来发现使用com.android.ca...
分类:
移动开发 时间:
2014-06-08 03:18:38
阅读次数:
357
查询缓存的作用就是当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间。查看缓存是否开启:
select @@query_cache_type; 禁用查询缓存:set session query_cache_type=off...
分类:
数据库 时间:
2014-06-08 01:23:40
阅读次数:
297
SQLSERVER 里经常看到的CACHE
STORES是神马东东?当我们在SSMS里执行下面的SQL语句清空SQLSERVER的缓存的时候,我们会在SQL ERRORLOG里看到一些信息DBCC
FREEPROCCACHE大家可以看到cachestore、object plans、sql plan...
分类:
数据库 时间:
2014-06-07 23:37:19
阅读次数:
380
Memcached
是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon
)是用C写的,但是客户端可以用任何语...
分类:
其他好文 时间:
2014-06-07 20:24:16
阅读次数:
191
开发基于BS模式的程序,都有报表模块,那么如何开发报表模块。1.定时发布报表数据到指定的临时表(可能是定时任务)2.用户通过HTTP请求后台,访问临时表,查询报表数据3.增加memcached缓存,再次访问是直接访问缓存。memcached原理:基于内存的缓存分布式系统,基于libevent(epo...
分类:
其他好文 时间:
2014-06-07 16:55:44
阅读次数:
272