markdown 基本语法
markdown 是一种轻量级标记语言,具有纯文本格式语法。它由 John Gruber 与 Aaron Swartz 在 2004 年合作创建。其目标是让人们“使用易于阅读且易于编写的纯文本格式进行编写,可选将其转换为结构上有效的 XHTML 或 HTML”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。1. 斜体和粗体使用 * 和 ** 表示斜体和粗体。
PHP 8.3 功能预览: gc_status() 返回额外的 GC 信息
PHP 的 gc_status() 函数返回垃圾回收器(GC)的统计信息,比如 GC 是否在运行、GC 是否被保护以及 缓冲区(buffer)的大小。这些信息可用在调试长运行时长的 PHP 应用,检测并优化内存使用。var_dump(gc_status());当前,gc_status 返回有4个key的数组:FieldTypeDescriptionrunsI...
envoy 会取代 nginx 吗?
Envoy 和 Nginx 是两种不同的反向代理服务器软件,虽然它们在一些方面有相似之处,但是它们也有很多不同之处。Envoy的目标是作为下一代云原生网络代理,提供高度可扩展的服务网格和边缘代理。它是由Lyft开发的,目前得到了Google、Salesforce、Red Hat和AWS等公司的支持,并成为了CNCF(Cloud Native Computing F...
PHP 8.2: 新增 imap_is_open 函数
PHP 8.2.1 中,IMAP 扩展添加了一个名为 imap_is_open 的新函数,该函数返回给定的 IMAP 连接对象是否打开。在此之前,没有办法判断IMAP连接对象是否打开。尝试使用已经关闭的对象会导致 \ValueError 异常,因此有了 imap_is_open 函数后,可以不用再通过 try/catch 检测给定的连接对象。imap_is_...
数据库以及它背后的存储
先要明确,这里的数据库指的是关系型数据库,即满足 ACID 原则并用 SQL 语言进行操作的持久性(掉电数据不丢)数据库。当然,在追求高并发的过程中,我们将不可避免地接触到内存数据库,但我们一定要知道,内存数据库只是架构设计的一部分,而且不是最重要的部分。数据库是个大单点所有 web 系统都会经常面临这种需求:用户要一个一个注册,ID 不能一样;订单要一个一...
隐藏在语言背后的魔鬼:运行架构为何会成为性能瓶颈
编程语言的性能差异是程序员社区经久不衰的话题,但当你对各种技术的了解越深入,就越能感受到各种语言的本质区别:不同语言的设计方向不同,就像时间换空间、空间换时间,他们只是选择了一种优势找信息之神换成了另一种优势罢了。没有任何编程语言是单纯的“语法集合”,每一种语言都是它背后“运行架构”的体现,语言之间的差异本质上就运行架构设计方向的差异。Web 系统规模发展史...
Apache 的性能瓶颈与 Nginx 的性能优势
每一名后端开发可能都知道 Nginx 比 Apache 性能强,但是为什么强,强在哪里,接下来我们动手实验解答这个问题。Nginx 利用了新的 Linux kernel APINginx 利用了 Linux 内核引入的 epoll 事件驱动 API,大幅降低了海量 TCP 连接下的 CPU 负载,提升了单个系统的 TCP 响应容量,这是 Nginx 性能更好...
图片懒加载 loading="lazy"
img属性loading="lazy"延迟请求加载资源HTML元素延迟加载属性 —— loading属性值lazy允许浏览器选择性加载IMG元素,根据用户滚动操作至其元素附近执行加载,一定程度起到节流的作用。懒加载、延迟加载亦或所谓的按需加载,通常在业务项目中,我们会考虑到此场景该如何处理?所谓图片懒加载,在图片位置未至用户视窗范围或屏幕位置时不予请求加载资...
robots.txt 文件应该如何使用?
robots.txt 是网站与搜索引擎之间不成文的协议,虽然没有明文去规定,但双方都会遵守这个协议。通过 robots.txt 文件我们可以限制搜索引擎蜘蛛的抓取轨迹,对 seo 来说有着比较重要的意义,然后还是有很多人并未引起重视,而且很多人也不会使用,下面我们一起来介绍一下吧。robots.txt 文件的使用 每个网站在每个阶段都有一个体量(内容量级,流量等),这...