优化

实践带你了解–http缓存

这次文章为了了解http缓存的机制,自己搭建nginx和设置nginx配置
网上的文章其实有很多,但是大部分都是文字表达,缓存这块又比较偏向理论,导致我一开始也是云里雾里的

所以这次我通过截图和步骤图来说明,并且进行文字补充, 不喜欢看文字的话其实看图片就行啦

以下每次截图都是无痕模式的…

                

深入了解PHP8 JIT(即时编译)功能

(Just-In-Time)即时编译器PHP 8.0中最重要的新功能之一。JIT可以通过将PHP应用程序的全部或经常调用的部分作为CPU机器代码编译并存储并直接执行,从而绕过Zend VM及其过程开销,从而提高性能。

JIT是传统解释器和AOT编译器的混合体。混合模型带来了这两种方法的利弊,而经过微调的应用程序可以胜过JIT的弊端。

PHP的JIT实施是Dmitry Stogov付出的巨大努力,历时数年之久的讨论,实施和测试都是如此。


PHP JIT:
PHP 8.0的JIT基础概述和配置选项,请参阅PHP 8.0:JIT
这篇文章是关于基准,JIT如何工作以及理想的配置选项的。


大多数PHP应用程序都接受HTTP请求,从数据库中检索和处理数据,并返回结果。IO通常是重要的性能瓶颈:从磁盘读取数据,写入和网络请求。

PHP 8.0引入了JIT,以提高PHP应用程序的性能,但它也增加了调试的障碍,因为应用程序的某些部分可能作为CPU机器代码缓存,而标准PHP调试器无法使用。PHP 8.0的JIT pull-request在PHP代码库中增加了50,000多个新行,因此,除了从事JIT的开发人员之外,PHP核心开发人员本身可能并不精通。


PHP虚拟机

PHP代码一旦处理(标记,解析,构建AST和构建操作码),便在Zend虚拟机上运行。与Java和JavaScript相似,虚拟机对应用程序的硬件方面进行了抽象,从而可以“运行” PHP源代码而无需编译。

Opcache扩展可以帮助将操作码存储在共享内存中,从而跳过重复的标记化/解析/操作码步骤。…

                    

聊一聊前端性能优化 CRP

什么是 CRP?

CRP又称关键渲染路径,引用MDN对它的解释:

关键渲染路径是指浏览器通过把 HTML、CSS 和 JavaScript 转化成屏幕上的像素的步骤顺序。优化关键渲染路径可以提高渲染性能。关键渲染路径包含了 Document Object Model (DOM),CSS Object Model (CSSOM),渲染树和布局。

优化关键渲染路径可以提升首屏渲染时间。理解和优化关键渲染路径对于确保回流和重绘可以每秒 60 帧、确保高性能的用户交互和避免无意义渲染至关重要。…

                

别再用OFFSET和LIMIT分页了

不需要担心数据库性能优化问题的日子已经一去不复返了。

随着时代的进步,随着野心勃勃的企业想要变成下一个 Facebook,随着为机器学习预测收集尽可能多数据的想法的出现,作为开发人员,我们要不断地打磨我们的 API,让它们提供可靠和有效的端点,从而毫不费力地浏览海量数据。

如果你做过后台开发或数据库架构,你可能是这么分页的:…

        

彻底弄懂浏览器缓存策略

Web 缓存介绍

  • Web 缓存是指一个 Web 资源(如 html 页面,图片,js,数据等)存在于 Web 服务器和客户端(浏览器)之间的副本。
  • 缓存会根据进来的请求保存输出内容的副本;当下一个请求来到的时候,如果是相同的 URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求。
            

优化 PHP 和 Laravel 以提高 Web 应用的性能

 

Laravel 有很多东西。但是快不是其中之一。让我们学习一些优化技巧,以加快运行速度!

自从 Laravel 诞生以来,没有一个 PHP 开发人员不受她的影响。他们是喜欢 Laravel 提供的快速开发的初级或中级开发人员,或者是由于市场压力而被迫学习 Laravel 的高级开发人员。

不管怎样,不可否认的是,Laravel 已经振兴了 PHP 生态系统(我确定,如果没有 Laravel,早就离开了 PHP 世界了)。

            

一文搞懂后台高性能服务器设计的常见套路, BAT 高频面试系列

前言

金九银十,又是一年校招季。

经历过,才深知不易。最近,和作为校招面试官的同事聊了聊,问他们是如何去考察一个学生的,我简单归为以下几点:

  1. 聪明、反应快,这点自不必说,聪明意味着学习能力、适应力强,能够快速胜任工作。
  2. 算法不错,代码基本功好,这点其实考察的是算法能力和代码是否写得优雅。
  3. 基础过硬,技术岗面试最核心的还是考察「技术储备」,包括了语言基本功,操作系统、网络、体系结构、系统设计。
  4. 语言组织和表达能力,这点很重要,很多同学懂得某个知识点,却很难用简洁准确的语言表述出来。
    

加速你的laravel框架运行, 教你如何减少服务提供者的启动.

Laravel有一个很强大的功能,就是服务提供者,它使得开发者能很容易的便能调用各种服务,但这也使得框架变得臃肿,今天就教大家如何优化各种不必要的服务提供者.

  • 找到不需要启动的服务提供者. 执行php artisan package:discover或者composer dump-auto查看我们引导了什么服务提供者. 
  • 从这里可以看到我们所有自动启动的外部服务提供者,我们可以优化其中一些,
    • 比如encore/laravel-admin是一个后台,但实际上我们每一次请求都会启动这个,所以我们只需要判断url中出现admin才启动这个服务
    • 比如intervention/image实际上是一个图片处理包,我们也不需要每一次请求都启动它,只需要压缩,操作图片时才启动这个包,这时候就可以写一个Service类,在类的构造方式启动这个服务
  • 首先我们想要排除某个服务提供者,把它加入项目根目录下composer.json文件中的extra.laravel.dont-discover的数组中即可 
  • 如果我们不启动这些服务,但又使用的话,这时候就会出现不可意料的结果
  • 所以,这时候我们就需要按需启动服务提供者.比如只有在url包含有admin才启动encore/laravel-admin
  • 首先我们先查看这个包的根目录下的composer.json文件 
        

还在看那些老掉牙的性能优化文章么?这些最新性能指标了解下

性能优化相关的文章其实网上挺多,但是大部分都是在讲如何优化性能,也就是讲方法论。但是在实际工作中,如何量化性能优化也是相当重要的一环。今天本文会介绍谷歌提倡的七个用户体验指标(也可以认为是性能指标),每个指标分别根据以下几点讲解:

  1. 指标本身的作用、测量、推荐时间区间等
  2. 如何指标进行优化,该内容会在文末统一讲解

FP & FCP

首次绘制,FP(First Paint),这个指标用于记录页面第一次绘制像素的时间。

首次内容绘制,FCP(First Contentful Paint),这个指标用于记录页面首次绘制文本、图片、非空白 Canvas 或 SVG 的时间。

这两个指标看起来大同小异,但是 FP 发生的时间一定小于等于 FCP,如下图是掘金的指标: