240 发简信
IP属地:北京
  • 共享内存实现多进程低延迟队列 10us

    起因 之前的博客写过通过inotify 加文件的形式来实现多进程队列的文章。这种方式在通常情况下表现不错,但是这里存在一个问题就是当消费者过慢,会产生大量的击穿内核高速缓冲区...

  • struct char[0] 零长数组使用

    在c中虽然支持了变长数组,但是在使用的时候还是会有诸多限制。比如分配在栈上,也就是说不能返回变长数组的指针,同时还增加了栈溢出的风险,以下是几种不能使用的场景。 不能使用ex...

  • 120
    linux inotify 触发点探秘

    起因 之前写过一篇通过inotify来实现高性能的文件队列的文章,对inotify触发的点有些疑问,到底是底层文件发生变化后才trigger event还是在write co...

  • linux 有名信号量semaphore性能探究

    起因 最近想基于共享内存加有名信号量实现一个进程间的共享栈,来取代thrift, 优化下ipc的延迟。 测试 首先测试了下thrift消息传递的延迟,分别在client调用前...

  • muduo 中 has_no_destroy 模板

    在学习muduo源码中,单例模式实现的源码中有这么一段 has_no_destroy 实现了在编译期间判断泛型T中是否存在no_destroy方法。这个实现的原理追究起来也就...

  • 基于swoole的websocket聊天室设计实现

    php中就不能不知道swoole这个扩展了,有了这个扩展很多不可能就变成了可能。 借助于swoole提供的websocket机制,实现一个websocket服务器其实非常简单...

  • c++ std::enable_shared_from_this 的作用

    在类的内部获取shared_ptr是在所难免的。 举个例子: 在日常c++编程中,为了更好的管理资源,我们通常借助shared_ptr来达到对资源的自动管理。由于其原理是通过...

  • 超简单的分布式任务实现

    为什么不用hadoop我们目前的数据大多是时间序列并且有状态的数据,数据体积也在10个g以上,由于时间序列的关系,必须将某一类的数据按照时间顺序严格的绑定在一个map上。并且...

  • 120
    中年妇女的私生活

    在老家隔壁村有一个中年妇女,从年轻的时候就开始不检点,这些年村里基本上她那辈分的男人,都和她有不同寻常的亲密关系。 他男人也不管他,一直躲着她,从开始分床睡,到后来从一楼跑到...

  • 120
    第一次离月亮那么近

    文|美卿 从新疆[https://www.jianshu.com/nb/7464426]依依不舍地返程,经停近四个小时后,飞机再次起飞,这时候已经晚上十点多了。 飞机行驶渐至...

  • 大哲学家金岳霖的幽默故事

    “我是谁?”金岳霖转头问向随行的司机,接待他的女佣目瞪口呆,堂堂大哲学家,居然把自己给“弄丢”了,有这么奇葩的事? 金岳霖可不止这一次把自己忘记。 有一回,陶孟和家的佣人,接...

  • 120
    RocketMQ

    1 RocketMQ基本理论 1.1 发展历史 阿里巴巴消息中间件起源于2001年的五彩石项目,Notify在这期间应运而生,用于交易核心消息的流转。2010年,B2B开始大...

  • 基于kafka原理单机高性能微秒级别队列改造

    场景: 线上业务需要一款拥有超低延迟(us),支持多消费者,并且能够处理海量的消息积压的消息队列。 调研: kafka是我们日常生活中比较常见的消息队列,非常适合做消息的离线...

  • stdbuf 解决实时输出问题

    缓冲类型分为三种: 1. 无缓冲 2. 行缓冲 3. 全缓冲 stderr默认缓冲就是无缓冲。而stdout的缓冲类型与输出介质有关: 屏幕或者终端:行缓冲 重定向文件、管道...