在服务器上搭建perplexia Perplexia是一个人工智能搜索引擎,是Perplexity的开源替代版本。最近正好在公司内网的服务器上搭建一个Perplexia服务,记录一下中间遇到的问题,主要是来自于网络环境。 2025-02-22 #docker #ai #llm
Proxy库的使用 proxy库是微软推出的一个非继承式的多态实现。无论从性能来看还是侵入性来看,proxy 都是一个对api设计比较友好的库。proxy在3.0版本中更新了使用方式,改进了之前写法过于难懂(丑)的问题。因此如果在业务中有需求的还是可以一试。 2025-01-02 #cpp
游戏引擎在安卓下的实现 一般游戏引擎都是使用c++实现逻辑,再通过一个虚拟机实现用脚本语言维护业务逻辑。因此在安卓下进行一层包装是十分必要的,使得引擎能够和安卓接口交互,也能正确地管理生命周期。 2024-09-23 #cpp #android
Cap'n Proto的编码格式分析 Cap’n Proto是一个高性能的数据交换格式,而且还附带了一套性能优良的RPC框架实现。是Protobuf2的作者Kenton Varda于 2013 年 4 月开源发布的,开源10年之后也在23年发布了第一个稳定支持版本1.0。Cap’n Proto号称编解码接近0开销,比protobuf快无数倍。当然我们想想也知道这是个不现实的事情,但是能这么说肯定是它在速度上有两把刷子,因此本文我们就来 2024-06-16 #cpp
lambda捕获变量在c++协程中的生命周期 最近在实现一个基于c++20的协程库,当我把lambda和协程组合在一起用的时候,出现了capture变量失效的问题。最后发现是因为capture变量的生命周期的问题。 2024-04-12 #cpp
c++中的memory order问题 在C++中,我们使用atomic时会发现相关操作都有一个可选的参数std::memory_order,本文就分析以下这几种memory_order的用法,以方便大家写出更加高效的多线程代码。 2024-03-17 #cpp
c++使用placement new解决静态变量析构顺序问题 在日常工作中,我们经常会遇到使用静态变量来保存唯一实例,例如著名的Meyer单例模式,可以在c++11的下不经过加锁就能实现线程安全的单例模式。但是静态变量如果在析构函数中也引用到了其他静态变量(最常见的就是Logger实例是一个静态变量时,在析构函数中记录了日志)。本文中我们探讨了如何使用placement new绕开静态变量生命周期的问题。 2024-02-14 #cpp
使用自定义指标实现HPA 在云原生的开发下,POD一般都需要自动扩缩容以适应业务的开发环境(否则不如直接部署在VPS上了)。传统的HPA会使用CPU或者内存来扩缩容,但是对于某些特殊业务,我们会根据自定义指标(例如qps,特殊资源的使用情况)来决定是否需要扩容。 2023-09-15 #go #k8s