hexo-butterfly主题-giscus评论
1、创建新仓库
2、安装giscus
点击这个链接安装:GitHub Apps - giscus
选择刚建立的仓库,点击install
3、配置仓库discuss部分
首先打开仓库的setting,将Discussions部分打上对号
然后建立一个Announcements的分类
4、进入giscus配置
链接在这:giscus
配置完上述部分后,可以在启动giscus下边复制几个东西
将上边复制的东西填到butterfly主题配置文件的这里就可以了
5、大功告成
博客文章部分就有了下边的评论区
3、高并发内存池-框架
问题考虑
主要是在多线程高并发的场景下,性能更强,主要考虑下面几个问题
性能问题
多线程环境下,锁竞争问题
内存碎片问题
组成部分
concurrent memory pool 主要由三部分构成:thread cache、central cache、page cache,如下图所示
thread cache : 线程缓存,是每个线程独有的,用于小于256kb内存的分配,线程从这里申请内存不需要加锁,每个线程独享一个cache,这也是内存池高效的原因
central cache : 中心缓存,被所有线程共享,thread cache是按需从central cache 中获取的对象,central cache合适的时机回收thread cache的对象,避免一个线程占用过多的内存,而其他线程内存不足,使得内存分配在多个线程中更均衡的按需调度,cnetral cache是存在竞争的,从这里获取内存对象需要加锁,但是这里用的是桶锁,而且只有thread cache没有内存对象时,才会找central cache,所以这里竞争不会很激烈。
page cache : 页缓存,是在 ...
2、高并发内存池-预备
不积跬步,无以至千里;不积小流,无以成江海,做项目也是一样,先从简单的部分做起,在正式的项目开始前,可以先来个开胃菜,一是可以熟悉简单的内存池是如何控制的,二是会作为之后内存池的一个基本组件。
malloc和定长内存池对比
malloc场景如下,malloc是一个通用的内存池,在什么场景下都可以使用,但这也意味着malloc在什么场景下都不会有很高的性能,因为malloc并不是针对某种场景专门设计的。
flowchart TD
A[场景A] --> B(malloc)
E[场景B] --> B(malloc)
C[场景C] --> B(malloc)
定长内存池就是针对固定大小内存块申请和释放的内存池,由于定长内存池只需要支持固定大小内存块的申请和释放,因此我们可以将其性能做到极致,并且在实现定长内存池时不需要考虑内存碎片等问题,因为我们申请/释放的都是固定大小的内存块。
flowchart BT
A[内存池A] --> B1(场景A)
E[内存池B] --> B2(场景B)
C[内存池C] --> B3(场景C)
...
震惊!!!C语言也能实现泛型编程吗??
今天看到一个有意思的知识点,赶紧记录一下,总所周知,C语言没有泛型,但是C11新增了一种表达式,叫做泛型选择表达式(_ Generic),这个是干啥的呢?它的作用是根据表达式的类型选择一个值,让我们来看一看它具体的语法
泛型选择引入
先看一段代码:
12345678910int main(){ int x = 1; double y = 2.0; char z = 'c'; printf("%d\n", _Generic(x, int:0, double : 1, default:3)); printf("%d\n", _Generic(y, int:0, double : 1, default:3)); printf("%d\n",_Generic(z, int:0, double : 1, default:3)); return 0;}
_Generic是C11关键字,后面的圆括号中包含有多个用逗号分隔的项,第一个项是表达式,后面的每一个项都由一个类型、一个冒号和一个值组成,如d ...
1、高并发内存池-序章
项目介绍
这是一个CPP实现的高并发内存池,原型是谷歌的tcmalloc开源项目(Thread-Caching Malloc),既线程缓存的malloc,实现了高效的多线程内存管理,用于替代系统的内存分配相关函数(malloc、free)
前置需求
C/C++
数据结构(链表、哈希桶)
操作系统内存管理
单例模式
多线程
互斥锁
…
内存池简介
1、池化技术
池化技术就是程序先向系统申请过量的资源,然后自己管理,能大大提升程序的运行效率
常见的池化技术场景
内存池
线程池
对象池
…
2、内存池
内存池是指程序预先从操作系统申请一块足够大内存,此后,当程序中需要申请内存的时候,不是直接向操作系统申请,而是直接从内存池中获取;同理,当程序释放内存的时候,并不真正将内存返回给操作系统,而是返回内存池。当程序退出(或者特定时间)时,内存池才将之前申请的内存真正释放。
3、内存池解决的问题
内存碎片问题
效率问题
向操作系统频繁申请内存消耗较大,内存池能够避免让程序频繁的向系统申请和释放内存
4、malloc
C/C++中动态申请内存都是通过malloc去申请内存, ...
课程推荐-理财篇
Python数据分析实战:构建股票量化交易系统
深入理解量化交易的本质、发展、优势、意义和过程;
掌握Python基础工具的使用方法,如Python、Pandas、Numpy、Matplotlib、TA-Lib、Tushare、statsmodels、pyecharts等;
掌握Python数据分析和挖掘的过程和技能;
掌握Python实现经典金融技术指标的方法,如K线、均线、成交量、MACD、KDJ等。
掌握使用Matplotlib、pyecharts可视化方法绘制出股票行情分析界面以捕捉个股动向,为大家呈现不同的显示效果。
掌握Python实现应用数学中经典算法,如线性回归、蒙特卡洛、随机漫步、凯利公式等;
掌握如何从数据特征值中实现常用的量化交易策略,如择时、选股、风险控制、度量、仓位管理等。通过学习我们可以制定量化交易策略以及度量策略效果,应用交易策略来辅助股票交易。
课程推荐-后端篇
课程1 - MySQL 性能调优必知必会
数据架构方面:主要讲述 MySQL 主从架构之间可能遇到的问题,以及主从架构如何提高稳定性。
存储引擎方面:主要讲述 MySQL 数据库中的 InnoDB 存储引擎的底层运行原理以及 InnoDB 存储引擎的优化。
SQL 方面:主要讲述 SQL 的实现原理,例如,order by(排序)的实现原理及优化、join(连表)的实现原理及优化等,更有一条 SQL 从执行的开始到结束都经历过哪些模块,在使用过程中优化的最佳实践等。
MySQL 数据安全:主要讲述在 MySQL 数据库中如何防止数据丢失,以及数据库中各种日志的作用。
课程2 - Python 异步网络编程实战
从事 Python Web 开发的技术人员
对 Python 感兴趣,想了解 Python 异步实现过程
在开发过程中,想使用异步方式提升 Python 性能的开发者
课程3 - 深入理解 TCP 协议:从原理到实战
学习 TCP 协议多次从入门到放弃的同学
想通过实验方法学习 TCP 协议的同学
对于前端工程师,学完可以快速辨识开发中遇到的问题是前端还是后端的问题 ...
课程推荐-工具篇
Git
随着这几年 GitHub 的流行,Git 已经是一个程序员逃不过的技术项,但很多人却纷纷倒在了学习它的路上。而且,出于工作原因而不得不用 Git 的人,有不少在工作中对 Git 也是能不用就不用,生怕哪个命令用错就把公司的代码库毁掉了🙈。而那些对 Git 掌握得比较好的少数人,就像团队中的神一样,在同事遇到 Git 相关的问题的时候用各种风骚操作来拯救队友于水火。
Nvim
适合有一点 VIM 基础的使用者(至少知道怎么编辑文件和退出 VIM 😁)。
有程序开发基础,有可以访问 Github 的网络环境,想要提升开发效率与开发体验的程序开发人员。
想要系统学习 Neovim 配置,却被网上零散过时的 VIM 配置教程困扰的同学们。
这里有个彩蛋哦
温馨提示(The content of the egg is a precondition for using ChatGPT and new bing)希望你能发现哦!!!
如何最快的打造一个帅气好看可以装逼的github主页呢?
先说结论:抄别人好看的主页
PS:自己去搞得话,并不一定好弄,而且不如人家的好看,当然我也在后边放了几个小网站,想自己丰富的可以去看看。
好看主页推荐
这边推荐四个主页,后边会说复制主页的方法,github的主页是需要建立一个与github的ID同名的仓库的,然后里面放README.md的文档,这个文档内容就会被展示到主页。
blinkfox (闪烁之狐 (blinkfox)) (github.com)
推荐指数:⭐⭐⭐⭐
好看指数:⭐⭐
复制难易:⭐⭐
L1cardo (Licardo) (github.com)
推荐指数:⭐⭐⭐⭐⭐
好看指数:⭐⭐⭐⭐
复制难易:⭐⭐⭐⭐
appotry (夜法之书(appotry)) (github.com)
推荐指数:⭐⭐
好看指数:⭐⭐⭐
复制难易:⭐⭐⭐⭐
atongrun (孙菜菜) (github.com)
推荐指数:⭐⭐⭐
好看指数:⭐⭐
复制难易:⭐⭐
前三个是大佬的,最后一个是我的,我是抄的大佬的,这里就没必要放太多了,因为大差不差,大家可以自己打开github主页下载文档,当然方便点也可以关注我的公众号【孙菜菜 ...