惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
L
Lohrmann on Cybersecurity
aimingoo的专栏
aimingoo的专栏
V
V2EX
S
Security Affairs
T
Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
IT之家
IT之家
J
Java Code Geeks
The Register - Security
The Register - Security
U
Unit 42
C
CERT Recently Published Vulnerability Notes
月光博客
月光博客
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Blog of Author Tim Ferriss
Cisco Talos Blog
Cisco Talos Blog
Project Zero
Project Zero
S
Schneier on Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
DataBreaches.Net
博客园 - 司徒正美
V
Vulnerabilities – Threatpost
T
Tor Project blog
Security Latest
Security Latest
T
The Exploit Database - CXSecurity.com
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
小众软件
小众软件
L
LangChain Blog
Attack and Defense Labs
Attack and Defense Labs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
P
Palo Alto Networks Blog
A
Arctic Wolf
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 叶小钗
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
LINUX DO - 最新话题
MongoDB | Blog
MongoDB | Blog
Webroot Blog
Webroot Blog
H
Hacker News: Front Page
Know Your Adversary
Know Your Adversary
Spread Privacy
Spread Privacy
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta

博客园 - charleschen

System.Web.Hosting.HostingEnvironmentException: Failed to access IIS metabas 伤别离[转] --为了文渊阁的朋友们 和我们过去的青春 开始稳定,准备补文章 现有Java开源BI前端框架简介 使用Logview4net观察各种日志类文件 阅读的乐趣 我们是否需要ORM(3)--上帝说 我们是否需要ORM(3)--ORM优势和缺点, ORM为何而生,ORM与DB Helper Library 悬赏!!!VS2005的Bug还是什么别的东东 我们是否需要ORM(2)--ORM的不足 我们是否需要ORM(1)--前篇 写在"大型软件开发与ORM构架"之后----大型软件开发与企业级应用软件开发名份之争 大型软件开发与ORM构架 回归命令行 SQLServer的命令行工具们(2) – sqlcmd.exe(中篇) 受不了要吐鸟。。。。 回归命令行 SQLServer的命令行工具们(2) – sqlcmd.exe(上篇) 回归命令行 SQLServer的命令行工具们(1) --dta.exe 程序员喝酒喝出的计算机文化 使用ADO.NET2.0提升数据交互性能(5)
缓存!缓存!缓存!!!(一)
charleschen · 2007-02-27 · via 博客园 - charleschen

前言

        相信大多数开发人员都比较了解缓存了,很多开发人员都在软件开发中使用了预定义或自定义的缓存,并从中获得了预期的应用程序的性能提升.这篇和后续文章将详细的介绍与探讨.net体系下的缓存实现的机制,并讨论它的优点与缺点.

 使用缓存的实际价值:
       kevinhoffmanlonnykruger的书中写到:开发人员经常需要将数据(临时数据)临时存放到一个存储媒体以便快速访问.这种临时数据的存储器叫做缓存.如果开发人员合理使用缓存,则可以大幅度提高应用程序的性能.

        上面是一段完美的关于缓存的定义,就目前而言,迅速而便捷的将数据提供给核心处理代码已成为一个重要的设计要求。,迅速是为了增强用户体验,便捷可以降低系统压力。而缓存则可以完成任务,虽然不是那么完美。

 形形色色的缓存机制几乎都有以下一些主要共同点:
       1.提供数据临时存储,缓存数据是否存在具有不确定性。
       2.可以设定缓存优先级。
       3.可以制定缓存依赖,依赖过期则缓存数据不可用。 
       4.缓存的核心是MAP

 

关于缓存的一些讨论:

临时缓存VS持久缓存:
       其实从理论上说微软.net的缓存解决方案是最完美的缓存的实现,但是正因为其教科书式的实现使得不少程序员们抱怨个不停。一个可能存在的悖论是:千辛万苦获得的数据被塞进缓存,因为系统内存紧张而被放弃,虽然它是为了缓解压力而来。这并不是微软的问题,而是程序员们贪得无厌的胃口和不当的使用方式所致。
      在很多的开源缓存机制中都采用的持久缓存的方法来实现,其实这些与其说是缓存,我觉得更像是一个增强的session,将缓存的优先级,缓存依赖机制安装在其上。开发起来既简单又轻松(.net cache 牵涉了大量底层非托管代码)。

内容缓存VS数据缓存:
  内容缓存不是唯一的选择,数据缓存也不是没有优点。虽然性能上稍有不足,但是把数据存放在数据库中却省去了清理缓存的麻烦,。另一个显而易见的优点是易于负载分配,尤其是我们拥有一个怪兽数据库服务器时。从实现技术上来说,麻烦的多线程问题也可以方便的转嫁。在选择实现内容缓存还是数据缓存,有很多不得不考虑的因素,花落谁家就看所开发的程序所特殊要求了.

值得重视的依赖:
          .net framework给我们提供了常用的几个缓存依赖:时间,文件,数据库。但是由于微软一贯的作分,我们无法创建新类型的依赖(SqlCacheDependency功能何其何其之弱…)。企业库自定义依赖是个好主意,我们只需要继承ICacheItemExpiration接口即可!虽然我依然被依赖的生存周期和清理折腾的焦头烂额。