`

构建高性能Web站点(笔记二)

阅读更多

第四章 动态内容缓存


     缓存的作用: 避免重复计算。使用缓存就需要考虑命中率问题。
    
缓存方式:
          动态网页缓存: 缓存的内容是动态网页输出的Html。
          动态内容缓存的具体方法: Smarty模板框架,Cakephp、Django、Zend等MVC框架,不管它们支持多么丰富的特性,有一点是相同的,都是将视图(View)和控制器(Controller)进行分离,这样可以让控制器有缓存控制权,从而提供丰富灵活的缓存控制方法。
          局部无缓存: 允许在页面中指定一块包含动态数据的HTML代码,每次请求,动态数据都实时计算,然后和其余部分的缓存合成最终的网页。引入局部缓存后,动态网页控制器也要进行相应的修改,其目的是把无缓存区域对应的动态数据计算提到缓存检查之前,这样才可以保证每次都将实时计算后的结果输出到模板中。
          静态化网页缓存: 直接访问缓存,不再需要经过动态程序。
          局部静态化: 静态网页必须整页更新,它可以通过SSI(Server Side Include服务端包含,网页中include另外的网页)技术实现各个局部页面的独立更新。
                    shtml指令 <!--#include file="nav_head.htm"-->
          网页支持SSI时,每次请求服务器都会通读网页内容,查找include标签,这会增加CPU开销,减少吞吐率。
     缓存物理空间:
          磁盘:
            缓存文件过多时,不利于查找,这时可通过缓存目录分级来解决。IO开销大,如果磁盘同时还运行着数如据库这样的磁盘IO密集型应用,缓存文件的IO操作会存在延迟。
         
内存:
            先将数据或对象缓存在内存中,这样加载缓存时没有任何磁盘IO开销。
            例,借助PHP的APC模块将PHP运行时数据或对象缓存在内存中,APC停工了Key/Value的存储方式。
          缓存服务器: 利用memcached,可以很容易通过TCP将缓存存储在其他服务器中。

 
第五章 动态脚本加速


    缓存的目的是最大程度地跳过动态计算内容,然而,除非静态化访问,否则完全跳过动态内容的计算是不可能的。加载缓存需要动态运行脚本,可以通过提高动态脚本的运行速度来提高动态内容的处理。
    opcode: 解释器完成对脚本代码的分析后,会生成可以直接运行的中间代码,也叫操作码(Operate Code)
    解释(parse): 从程序代码到中间代码的过程叫解释,由解释器完成。
    编译(compile): 编译型语言中,将程序代码生成中间代码的过程叫编译,由编译器完成。
    
编译器和解释器的本质区别:
        解释器生成中间代码后,便直接执行它,所以运行时的控制权在解释器。
        编译器则将中间代码进一步优化,生成可以直接运行的目标程序,但不执行它,这时控制权在目标程序,和编译器就没有关系了。
    通过缓存opcode可以进行复用,从而加快脚本语言的执行速度。

    应用层无法缓存opcode,可借助opcode缓存器来缓存opcode,如PHP的APC、XCache、eAccelerator等。 

分享到:
评论

相关推荐

    Linux性能与安全合集

    Linux Security Tips(Linux 安全技巧).pdf linux 系统安全与优化中文版 by smallfish.pdf Linux 系统安全与优化中文版221.pdf Linux 进程管理.pdf Linux安全和优化.pdf ... 构建高性能WEB站点.p

    SOLR学习笔记

    Solr 的设计目标是为了提供高性能、高可用性的搜索服务,适用于各种规模的企业级应用。 **主要特点** 包括: - **面向应用**:Solr 提供了丰富的特性来满足不同场景的需求,比如高亮显示匹配文本、支持多种输出...

    笔记资料.zip

    例如,Java应用处理业务逻辑,Nginx负责静态资源服务和负载均衡,两者共同构建出高性能的Web服务架构。 这份笔记资料可能详细记录了作者在学习过程中遇到的问题、解决方法以及一些实用技巧,对于初学者和有经验的...

    基于PHP的minIsay php笔记程序beta.zip

    1. **轻量级架构**:minIsay的设计理念是简洁,因此其代码结构清晰,资源占用少,对于小型和个人站点而言,运行效率高,且易于部署和维护。 2. **PHP技术栈**:作为一款PHP程序,minIsay充分利用了PHP的灵活性和...

    easyUI笔记

    ### easyUI笔记知识点详解 #### 一、什么是jQuery EasyUI? **jQuery EasyUI** 是一组基于 jQuery 的 UI 插件集合。它的目标是帮助 Web 开发者更容易地创建功能丰富且美观的用户界面。通过使用 **jQuery EasyUI**...

    Portal门户开发笔记

    IBM WebSphere Portal是一款强大的企业级门户平台,用于构建和管理高度可定制的、集成了多种应用和服务的用户入口。在本开发笔记中,我们将深入探讨WebSphere Portal V6到V8版本的相关知识点,涵盖从基础架构到高级...

    ngotes:使用MongoDB的笔记站点

    MongoDB是一款高性能、开源、无模式的文档型数据库,被广泛应用于Web开发中,尤其是对于处理JSON、BSON格式数据的应用场景。Ngotes是一个基于MongoDB构建的笔记站点,它利用了MongoDB的强大功能来存储和检索用户的...

    Nginx-笔记1

    【Nginx】是俄罗斯开发的一款高性能的HTTP和反向代理服务器,因其高效稳定、内存消耗小、并发能力...通过本课程的学习,你将能够全面了解Nginx,掌握其基本配置和应用场景,为构建高效稳定的Web服务环境打下坚实基础。

    nginx笔记+JAVA+运维

    Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,由俄罗斯开发者伊戈尔·赛索耶夫为 Rambler.ru 站点开发,以其稳定性、高效能和低系统资源消耗著称。自 2004 年首次发布以来,Nginx 已经发展成为一个广泛使用的...

    尚硅谷_韩顺平_Go语言核心编程.docx

    - **后端服务开发**:由于 Golang 高效的性能表现,非常适合用于构建高性能的 Web 服务器和 API 服务。 - **云计算/云服务后台**:随着云计算的发展,越来越多的企业开始采用 Golang 来构建云服务的后端系统。 ####...

    老男孩linux运维课程笔记

    - **Nginx优势**:高性能、稳定性好、资源消耗低、易于扩展。 - **模块和工作原理**: - Nginx支持多种模块,如HTTP Proxy模块、HTTP FastCGI模块等。 - 工作模式采用异步非阻塞的方式,能够高效处理大量并发请求...

    lucene笔记

    - **Nutch**: 包含大规模爬虫工具,能够抓取和分析Web站点数据。 - **jsoup**: Java HTML解析器,支持直接解析URL地址、HTML文本。 - **Heritrix**: 开源的网络爬虫,具有良好的可扩展性。 #### 索引文件的逻辑...

    ZopeBook学习笔记

    - **Zope** 是一种基于Python的应用服务器,特别适用于构建内容管理和门户站点。它支持多种数据库存储方式,并提供了强大的安全性机制。 - **Zope对象** 在Zope环境中扮演着核心角色,它们能够处理各种任务,例如: ...

    documentation::open_file_folder:我用盖茨比制成的个人笔记本

    首先,Gatsby是一款基于React的静态站点生成器,它结合了现代Web开发的最佳实践,如JAMstack(JavaScript、APIs、Markup),为构建高性能的网站提供了一流的解决方案。通过Gatsby,我们可以快速搭建起个人笔记本的...

    JavaScript_使用 NextJS Notion API 实现的支持多种部署方案的静态博客无需服务器零门槛搭建网站为

    它简化了React应用的开发流程,提供了诸如自动代码分割、预渲染、路由、热模块替换等特性,让开发者可以快速地构建可扩展的、高性能的Web应用。 **Notion API** Notion是一款强大的笔记和项目管理工具,它的API...

    flutter 环境搭建-flutter环境搭建,很不错的学习笔记

    其核心优势在于跨平台性和高性能表现。 **跨平台性**:Flutter 的跨平台特性意味着开发者可以使用同一套代码库来部署应用程序至多个不同的平台。这些平台包括但不限于: - **移动端**:Android 和 iOS。 - **Web端...

    《Apache服务器配置与使用工作笔记》.(王江伟).[PDF].&ckook;

    ### Apache服务器配置与使用知识点详解 #### 一、Apache服务器简介...通过以上知识点的学习,读者可以深入了解Apache服务器的基本原理、配置方法及高级用法,从而更好地利用Apache构建稳定、高效、安全的Web服务环境。

    PriorityQueue带优先级的队列md,学习代码笔记

    **PriorityQueue带优先级的队列** `PriorityQueue`是Java集合框架...理解这些技术并合理选择使用,对于构建高性能、安全的Web应用至关重要。在实际开发中,需要根据应用场景和需求来决定使用哪种机制来管理用户状态。

    notebook:每日笔记本迷你博客

    1. **Gatsby**:Gatsby是一个基于React的开源静态站点生成器,用于快速构建现代Web应用。Gatsby以其出色的性能、丰富的插件生态系统和SEO优化而闻名。在“notebook”项目中,Gatsby被用来构建响应式的博客界面,能够...

    B2C商城系统 PC端+H5移动端 + 微信端 快速为你构建自己的商城系统.rar

    对于高并发的B2C商城,性能优化至关重要,包括缓存策略、负载均衡、CDN内容分发网络等技术的应用,以保证系统的稳定性和响应速度。 11. **API接口**: 商城系统可能需要与其他服务集成,如物流查询、第三方支付、...

Global site tag (gtag.js) - Google Analytics