写点什么

C++开发

0 人感兴趣 · 53 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/92/92164961b4f9719b9cfb52d11a17be8d.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

一文带你走进 C++【内存泄漏】

用户头像
C++后台开发
3 小时前

​没想到项目放到线上后,随着请求量的增多,却感觉到首屏速度越来越慢,并且是在持续性地变慢。而且在发布完后(也就是容器重建了),耗时又陡然降下来了。

https://static001.geekbang.org/infoq/bf/bfa948f5c7d93c2a371de46599424346.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

分布式事务 Seata 框架的 AT 模式

大纲 分布式事务 seata架构 1.分布式事务 在分布式系统架构中,复杂的业务需要跨库操作,要保证全局的事务一致性问题就得需要解决分布式事务问题。 1.1 XA规范 XA规范中,规定了三种角色:AP应用程序、RM资源管理器(数据库)、TM事务管理器。XA规范

https://static001.geekbang.org/infoq/d0/d0201540a046d7fa974eeb45c60c9e55.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

可靠消息最终一致性分布式事务

一、前言 可靠消息最终一致性方案主要适用于消息数据能够独立存储: 能够降低系统之间耦合度 业务对数据一致性的时间敏感度高 此方案需要实现的服务模式: 可查询操作:提供查询自身事务状态的接口。

https://static001.geekbang.org/infoq/68/68678e5ee71ddc256b62e81e030938dc.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

探究线程与进程的区别这一问题

进程和线程基础(理论概念) 1. 定义 看了下面的定义,可能会有点晕,但我还是要把他写下来(为了严谨)。 进程是资源(CPU、内存等)分配的基本单位,具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立

https://static001.geekbang.org/infoq/ae/ae217f323f238b907ba5f18bc09c7ae9.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

深入 RocketMQ- 消息原理篇

RocketMQ 原理分析-消息原理 本篇原理分析主要讲解消息原理方面 RocketMQ 如何保证消息不丢失/保证可靠性 消息在 RocketMQ 流转大概可以分为三个阶段:发送阶段、存储阶段、消费阶段,那么可靠性就要从这三个阶段考虑。

https://static001.geekbang.org/infoq/12/12e820699b3fb0edfa8dd7535958f1a5.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【数据结构之红黑树】深入原理与实现

从这篇文章开始我们来介绍红黑树这种数据结构,由于红黑树有二分搜索树和AVL树的性质,对于红黑树的操作同样依赖于这些性质。所以,如果理解了二分搜索树和AVL树之后再来理解红黑树其实相对来讲还是比较简单的。

https://static001.geekbang.org/infoq/11/11ffeb9bd38f841d6167958db57a92e4.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

分布式事务

事务(transaction)是我们学习数据库时经常提到的概念,它是指数据库执⾏过程中的⼀个逻辑单位,把我们的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作要么全部完成(commit),要么什么都不做(rollback)。

https://static001.geekbang.org/infoq/21/212b6daf35e5f7469e2b8859aefb6ec9.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

你从未见过如此详细的 TCP 八股文!

TCP 是一个可靠数据传输的服务,它能确保接收端接收的网络包是无损坏、无间隔、非冗余和按序的。

https://static001.geekbang.org/infoq/3e/3e0a21e42c4daa234714419be524e41b.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

epoll 的实现原理

前言 本文以四个方面介绍epoll的实现原理, 1.epoll的数据结构; 2.协议栈如何与epoll通信; 3.epoll线程安全如何加锁; 4.ET与LT的实现。 (epoll实际上在500个以上效率就会比select还有poll高,书上说的是1024.)

https://static001.geekbang.org/infoq/57/57d7005aa17b77858c5bc1c21f1a4d79.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

C 语言中的内存模型

近来学习深觉自己在语言的底层方面理解欠缺, 正好之前有看过一点内存模型相关的文章, 正好就花点时间研究一下这方面相关的知识。以此文整合一下自己学到的知识, 文章中有错误或不足之处还请师傅们斧正。重点讲堆栈与堆区两个动态区的概念, 简单分析其中的

https://static001.geekbang.org/infoq/04/04693f13a44993e5ea4e2cefd2507e6d.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

详解 MySQL 之事务

  事务的组成可由一条非常简单的SQL语句组成,也可由一组复杂的SQL语句组成。

https://static001.geekbang.org/infoq/24/2453790ec2beada0096cdd5f029c38ac.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

探究 MYSQL 之索引

在讲MYSQL的索引之前,先了解一下MYSQL的B+树,首先它是多路平衡搜索树,为什么MYSQL使用的是B+树,因为数据存储在磁盘中,而树的高度决定了访问磁盘的次数,所以选择B+树;MYSQL的B+树结构如下图所示:

https://static001.geekbang.org/infoq/0e/0e511d7a30ff388ba7eef73524ed8d37.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Netty 高性能之 Reactor 模型

Reactor 是一种模式,它要求主线程只负责监听文件描述符(I/O处理单元)是否有事件发生,有的话就立即将该事件通知工作线程(逻辑单元)完成处理。除此之外,主线程不做任何其他实质性的工作。读写数据以及处理客户请求均在工作线程中完成。

https://static001.geekbang.org/infoq/15/154e0a74f055c8849b621b78ee2b4926.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

死锁检测实现

  在工作项目使用多进程、多线程过程中,因争夺资源而造成一种资源竞态,所以需加锁处理。如下图所示,线程A想获取线程B的锁,线程B想获取线程C的锁,线程 C 想获取线程D的锁, 线程D想获取线程A的锁,从而构建了一个资源获取环,当进程或者线程申请的锁处

https://static001.geekbang.org/infoq/7c/7cdd09e1a5bc2c18d2ce3d28e9d8a584.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

什么是跨域,后端工程师如何处理跨域

作为一名后端开发工程师,在给前端同事写接口的时候,经常碰到他们讲,你的接口跨域了,那么什么是跨域,这里来研究下。

对于 epoll 实现原理的理解

Epoll是Linux IO的多路复用的机制,是select/poll的增强版本,在Linux内核fs/eventpoll.c中可以查看epoll的具体的实现。

https://static001.geekbang.org/infoq/a8/a8baae4549ad6712198d36c7562432ef.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

深入探索 Linux 零拷贝原理

前言 磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝、直接 I/O、异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量。 DMA技术 在没有DMA技术之前,IO过程是这样的:

https://static001.geekbang.org/infoq/a1/a10c360aa7fccf2027084b3289325588.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

深入浅出用户态协议栈

 在讲网络协议栈前,先理解一个数据包在网络传输是一个怎么样的流程,如下图所示。 ​ 正常的流程是网卡接收到数据后,把数据copy到协议栈(sk_buff),协议栈把sk_buff数据解析完后再把数据放到recv_buff,此时应用程序调用recv把数据从协议栈

NtyCo 纯 C 协程的原理分析

一、协程的由来   从IO同步和异步的优缺点分析如下:   IO同步优点就是sockfd管理方便,操作逻辑清晰;缺点是程序依赖epoll_wait的循环响应速度,程序性能差。   IO异步优点就是子模块好规划,程序性能高;缺点就是逻辑理解有点难度

为什么 C++ 能屹立这么久?细说 C++ 可以开发的 7 件事 以及 C++ 的特点和学习的优点

C++是一种编程语言,是C语言的扩展,可以说是一种高级形式。 C++ 是一种在 C 语言的基础上增加了面向对象元素的语言,它可以让您快速移动您的计算机,并实现更高效的编程。它也被简称为“Shipura”或“Shipura”。

C++ STL deque 容器底层实现原理(深度剖析)

事实上,STL 中每个容器的特性,和它底层的实现机制密切相关,deque 自然也不例外。《C++ STL deque容器》一节中提到,deque 容器擅长在序列的头部和尾部添加或删除元素。本节将介绍 deque 容器的底层实现机制,探究其拥有此特点的原因。

网络 IO 是如何一步一步走向零拷贝的

你们知道当程序需要读取或者写入数据的时候,CPU是如何操作我们的磁盘的吗?首先CPU肯定是要把读写数据的命令告诉给磁盘,这个命令可以通过IO总线传给磁盘,那这里有个细节,其实我们常说的磁盘不仅仅是只包含存储数据的媒介,还有接口,接口相信大家都熟悉,

备战 2023 秋招,应届生应做好哪些准备

23秋招已经开始了!作为应届毕业生求职最友好的季节,今年很多大厂的提前批并没有释放太多岗位,而是选择了秋季招聘。后续的补充和春招,竞争会更加激烈!本文将从以下几个方面与您讨论,如何准备和获得更多的软件开发职位。

C++ 后台开发学习路线(已多人拿下腾讯后台开发)

首先介绍下自己吧,本人系统架构师,曾供职著名创业公司系统架构师,微软亚洲研究院、创维集团。著有多个软件专利,参与多个开源软件维护。ntytcp,ntyco的founder,github follow人数1.4k。

高性能对象池实现

内存池用于对频繁申请的内存进行管理进而提升分配效率,但缺乏对一些创建和销毁开销比较大的对象的复用手段,因此对象池应运而生。而当系统中存在大量对象需要频繁创建和销毁时,如何减少大量的耗时开销是对象池构建的关键点之一,本文以此出发,与大家共同探

高并发场景下,6 种方案,保证缓存和数据库的最终一致性!

到底是更新缓存还是删除缓存? 到底是先更新数据库,再删除缓存,还是先删除缓存,再更新数据库?本文主要介绍了在不同场景下保证数据缓存一致性的相关策略。

为什么很多企业一边大规模裁员,又一边招聘?

本文主要是以互联网大厂为例说明原因,做芯片和硬件朋友可以参考。不过对于现在芯片人才奇缺的情况下,芯片大厂不一定适用。

分布式数据中心网络互联技术实现

通过虚拟机动态迁移技术(如VMware的vMotion)可实现数据中心间的计算资源动态调配,通过服务器高可用集群技术可实现数据中心间应用级容灾,这两种应用场景统称为“分布式数据中心(Distributed Data Center)部署方式”,其特点是一个应用系统在IP地址不变的

C++开发_C++开发技术文章_InfoQ写作社区