刚刚更新我的网站更新,更符合标准的devise。 我以前的devise是如此垃圾,我不得不使用IE = EmulateIE标签强制IE7仿真。 不幸的是,我相信浏览器可能会caching这个设置从以前的访问,导致我的新网站(这看起来很棒,没有button按)再次看起来垃圾… 有没有我可以使用的任何相反的标签,或者我可以使PHP做一些神奇的HTTP标头禁用此设置的caching?
我试图提高高负载下的性能,并希望实现操作码caching。 我应该使用以下哪一项? APC – 安装指南 eAccelerator – 安装指南 XCache – 安装指南 我也开放给任何其他的替代品,我的雷达下滑。 目前使用Apache 2和PHP 5.2在Debian Etch上运行 [更新1] HowtoForge安装链接添加 [更新2] 基于给出的答案和反馈,我已经在我的应用程序中使用以下Apache JMetertesting计划testing了所有3个实现: login 访问主页 有50个并发连接,结果如下: 没有操作码caching APC eAccelerator在 XCache将 性能图(越小越好) 从以上结果可以看出,与APC和XCache相比,eAccelerator在性能上略有优势。 但是,从上面的数据来看,最重要的是任何types的操作码caching都会大大提高性能。 由于以下两个原因,我决定使用APC: 软件包在官方Debian仓库中可用 更多的function控制面板 总结我的经验: 安装简便:APC> eAccelerator> XCache 性能:eAccelerator> APC,XCache 控制面板:APC> XCache> eAccelerator
我想知道caching和memoization之间的实际区别是什么。 正如我所看到的,两者都涉及到避免重复的函数调用通过存储来获取数据。 两者有什么区别?
我正在制作一个networking应用程序来pipe理产品SKUS。 其中一部分就是将SKU与产品名称联系起来。 在表格的每一行上,列出一个SKU,并显示一个带有产品名称的<select>框。 当前与数据库中该SKU相关联的产品被赋予一个像selected="selected"的属性。 这可以通过AJAX进行更改和更新。 有很多产品<option> s – 103是准确的 – 这个列表在每行的<select>重复。 从页面上的另一个input中,我使用jQuery AJAX请求来添加新的SKU /产品关联,并且明确表示它们是即时添加的,我将它们插入到表格顶部并带有一点突出显示效果。 由于SKU数量增加了10个左右,如果我刷新页面(将所有数据从产品名称sorting的数据库加载回来),Firefox会默认显示一些错误的选项。 它显示哪个不正确的选项是不一致的,但它似乎混合了页面重新加载之前存在的选项。 如果我使用Firebug检查<select> ,则select="selected"在正确的<option>标签上。 刷新页面(或者离开并input此页面的URL返回)并不能正确显示,但很难刷新(Ctrl + F5) 。 Chrome和IE7都正确显示这一点。 我的理论是,这是Firefox的错误caching策略的结果。 这听起来正确吗? 有没有什么办法可以在我的代码中说:“如果这个页面被刷新了,使它成为一个硬刷新 – 从头开始重新加载所有东西? 更新 为了解决这个问题,我改变了策略。 以前,我在每个表行上放置了一个<select>其中包含一长串<option> ,当前值设置为default 现在,我把当前值放在<span> 。 如果用户点击“更改”button,我用<select>replace<span> ,“更改”button变成“确认”button。 如果他们改变了选项并点击确认,那么AJAX会更新数据库,并且<select>返回到<span> ,这次是新值。 这有两个好处: 它修复了上面描述的错误 它需要less得多的页面上的DOM元素(所有这些冗余的<option> )
我想使用System.Runtime.Caching命名空间将cachingfunction添加到我的应用程序,并且可能要在几个地方和不同的上下文中使用caching。 为此,我想使用几个MemoryCache实例。 不过,我在这里看到,使用MemoryCache的多个实例是不鼓励的: MemoryCache不是一个单例,但是应该只创buildless数或者可能只有一个MemoryCache实例,并且caching项的代码应该使用这些实例。 多个MemoryCache实例如何影响我的应用程序? 我觉得这种奇怪,因为在我看来,在一个应用程序中使用多个caching是一个相当普遍的情况。 编辑:更具体地说,我有一个类应该保持每个实例的caching。 我应该避免使用MemoryCache并寻找不同的caching解决scheme吗? 在这种情况下使用MemoryCache被认为是不好的,如果是的话,为什么呢?
这是一个面试问题。 面试结束了,但这个问题还在我脑海里。 我不能问面试官,因为我没有得到这份工作。 场景: 把类C1的对象放到一个caching中,键为“a” 后面的代码: C1 c1FromCache = (C1) cache.get("a"); 此代码抛出一个ClassCastException。 原因是什么? 我之所以说是因为别人用另一个对象用同样的密钥来覆盖它。 我被告知没有,想到其他的可能性。 我说可能定义类C1的jar在这个节点上是不可用的(不知道这是否会导致类抛出或ClassNotFoundException,但是我现在正在抓取任何一个线索,然后我说可能是错误版本的类?同样的C1类jar子在所有节点都有)。 编辑/添加询问get是抛出ClassCast,但被告知不。 之后,我告诉他我的行动来解决这个问题将放在一个testingjsp,将模仿的行动,并把更好的日志logging(堆栈跟踪)后的例外。 那是问题的第二部分(为什么如果在生产中发生这种情况,你会怎么做) 有没有人有任何想法,为什么一个caching获得将导致铸造问题?
在Session vs Cache中存储数据表有什么区别? 有什么优点和缺点? 所以,如果它是一个简单的search页面,返回一个数据表格的结果,并将其绑定到一个gridview。 如果用户'a'search和用户'b'search,将它存储在Session中是否更好,因为每个用户最有可能具有不同的结果,或者我仍然可以将他们的每个search存储在Cache中,或者是没有意义的,只有一个caching。 我想基本上我想说的是Cache会被覆盖。
我刚将Tomcat从版本7.0.52升级到8.0.14。 我得到了很多静态图像文件: org.apache.catalina.webresources.Cache.getResource无法将[/base/1325/WA6144-150×112.jpg]上的资源添加到高速caching,因为在清除过期的高速caching条目后可用空间不足 – 请考虑增加最大大小的caching 我没有指定任何特定的资源设置,我没有得到这个7.0.52。 我发现在启动时发现了一个据说已经修复的bug报告。 对我而言,这不是在启动时发生,而是在请求资源时不断发生。 其他人有这个问题? 试图至less只是禁用caching,但我找不到如何指定不使用caching的示例。 这些属性已经从Tomcat版本8中的上下文中去除了。尝试添加一个资源但是无法获得configuration权限。 <Resource name="file" cachingAllowed="false" className="org.apache.catalina.webresources.FileResourceSet" /> 谢谢。
编辑 :为了参考的目的(如果有人绊倒这个问题),Igor Ostrovsky写了一个关于caching未命中的伟大的职位 。 它讨论了几个不同的问题,并显示示例编号。 结束编辑 我做了一些testing<long story goes here>并且想知道性能差异是否是由于内存caching未命中所致。 下面的代码演示了这个问题,并将其归结为关键的时间部分。 下面的代码有几个循环,以随机顺序访问内存,然后按升序地址顺序访问。 我在XP机器(用VS2005:cl / O2编译)和Linux机器上(gcc -Os)运行它。 两者产生了类似的时间 这些时间以毫秒为单位。 我相信所有循环都在运行,没有被优化(否则它会“立即”运行)。 ***testing20000个节点 总有序时间:888.822899 总计随机时间:2155.846268 这些数字是否有意义? 主要是由于一级caching未命中还是其他事情呢? 有2万2 ^ 2的内存访问,如果每一个都是一个caching未命中,那就是每个小姐约3.2纳秒。 我testing的XP(P4)机器是3.2GHz,我怀疑(但不知道)有一个32KB L1caching和512KB L2。 有20,000个参赛作品(80KB),我认为没有大量的L2错失。 所以这将是(3.2*10^9 cycles/second) * 3.2*10^-9 seconds/miss) = 10.1 cycles/miss 。 这对我来说似乎很高。 也许这不是,或者我的math不好。 我试着测量与VTune的caching未命中,但我有一个BSOD。 现在我无法连接到许可证服务器(grrrr)。 typedef struct stItem { long lData; //char acPad[20]; } LIST_NODE; #if […]
我有几个与Cache-Control有关的查询。 如果我指定了Cache-Control max-age=3600, must-revalidate对于静态的html / js / images / css文件,必须使用HTTP标头中定义的Last Modified Header max-age=3600, must-revalidate : 在max-age过期之前,浏览器/代理caching(如Squid / Akamai)是否会一直到源服务器validation? 或者它会提供内容从caching到最大年龄到期? 在最大期限到期(即从caching到期)之后,是否存在If-Modified-Since检查或者是否从原始服务器重新下载了内容,而不是If-Modified-Since检查?