首页
学习
活动
专区
圈层
工具
发布

跨平台协程库 - libcopp 简介

但是我们游戏业务里大部分的实现都还是走的事务和Task/Step的模型,特别是C++上异步调用非常不直观。...在当时 libgo 当时也算是一个比较完善的协程框架了。它做了很多语法糖,上手很简单。当时它也做了和 libco 一样的共享栈功能,但是后来作者不建议使用了,不知道是不是和我们一样的想法。...跨平台的特性是为了我们当时不同人都有自己的开发喜好,每个人都有自己喜欢的工具、环境和流程,我希望是能够适配大家的环境,提供可用且功能一致的版本,在这个基础上,我们线上业务是运行在Linux上的,所以Linux...单元测试和压力测试 libcopp 里使用的是一个自己实现的轻量级单元测试框架,这样可以提供基本的测试功能并减少依赖。...这个简易的单元测试框架也提供了编译开关来切换到 boost.test 或者 gtest 。然后在CI工具里集成了单元测试和压力测试以便观测一些修改对性能和API接口的影响。

3.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    简单C++单元测试框架(支持一键切到GTest或Boost.Test)

    简介 众所周知,单元测试对于持续集成和变更的检测是十分重要的。 这个单元测试框架本是用于之前规划的C++协程框架使用的。...虽然已经有比较成熟的单元测试框架GTest、Boost.Test等等,但是要引入它们都会倒入很多文件。...而且他们的兼容性也不是很好 GTest在ARM架构下需要额外作一些适配 Boost.Test的话,按Boost的尿性,一旦引入就会涉及上千个文件 目前这个单元测试框架还没有抽离出来,所以代码暂时放在...,其他的都属于单元测试框架部分 以后如果需要的话,可以再抽离出来 设计及技术方案 最初搞这个单元测试框架的时候,是想参照GTest的接口形式,即 CASE_TEST(测试套件名称, 测试case名称...也暂时没有Check失败时程序终止的代码 但是作为一个简单的单元测试框架,核心功能已经具备。

    1.3K10

    别再用Google Test了,试试CTest

    CTest是什么 CTest是CMake自带的测试工具,专门用于自动化测试。如果你的项目使用CMake构建,CTest几乎是零成本集成的最佳选择。。...CTest具有如下特性: 跨平台:CTest支持多种操作系统,包括Windows、Linux、Mac等; 简单易用:不需要额外安装,和CMake无缝结合; 功能全:支持多种测试类型,如单元测试、集成测试...虽然市面上有许多优秀的测试框架,如Google Test、Catch2、Boost Test,但如果你的项目已使用CMake,CTest更为便捷。 2....CTest怎么用 CTest的使用有两个前提,已经安装CMake且项目使用CMake构建。...运行CTest:CTest的运行非常简单,只需要在构建目录下运行如下得命令即可: ctest -C Debug 注意:-C 指定构建类型(Debug、Release等),需与cmake中指定的类型一致

    19700

    能在 CPU 上运行的开源大模型推理框架

    量化技术在 AI 模型上也有类似效果,它通过减少数值表示的精度,显著缩减了模型的存储和计算量,使其更适合在低算力设备上运行。...近日,微软发布了一个全新的开源项目——BitNet.cpp,这是专为 1-bit 大语言模型(LLMs)推理而设计的框架。...BitNet.cpp旨在通过优化内核为 CPU 上运行的 1.58-bit 模型提供快速且无损的推理支持,并在未来版本中计划支持 NPU 和 GPU 。...首先来看看 BitNet.cpp 对环境的要求: Python 3.9及以上版本 CMake 3.22及以上版本 Clang 18及以上版本 这几个条件在 deepin v23 上很容易满足。...检查 cmake 版本 使用如下命令检查 cmake 的版本: $ cmake --version cmake version 3.28.3 CMake suite maintained and supported

    25110

    简单C++单元测试框架(支持一键切到GTest或Boost.Test)

    简介 众所周知,单元测试对于持续集成和变更的检测是十分重要的。 这个单元测试框架本是用于之前规划的C++协程框架使用的。...虽然已经有比较成熟的单元测试框架GTest、Boost.Test等等,但是要引入它们都会倒入很多文件。...而且他们的兼容性也不是很好 GTest在ARM架构下需要额外作一些适配 Boost.Test的话,按Boost的尿性,一旦引入就会涉及上千个文件 目前这个单元测试框架还没有抽离出来,所以代码暂时放在 https...,其他的都属于单元测试框架部分 以后如果需要的话,可以再抽离出来 设计及技术方案 最初搞这个单元测试框架的时候,是想参照GTest的接口形式,即 CASE_TEST(测试套件名称, 测试case名称)...也暂时没有Check失败时程序终止的代码 但是作为一个简单的单元测试框架,核心功能已经具备。

    61130

    AppCode 2022 for Mac(iOS代码编写利器)v2022.2.5中文激活版

    AppCode 2022 for Mac一个全新的iOS代码编写利器,帮助开发者来开发的Mac,iPhone和iPad上的iOS等系统的相关应用程序。...图片AppCode 2022 for Mac(iOS代码编写利器)appcode 功能特色1.高效的项目导航导航跳转到项目中的任何文件,类或符号,使用层次结构和结构视图来完成项目结构。...所有代码检查都是即时运行的。5.生产性单元测试开箱即用,AppCode支持XCTest,Quick,Kiwi,Catch,Boost.Test和Google Test测试框架。...通过代码生成操作获取单元测试的方法可以提高您的工作效率。根据上下文使用Cmd + N获取测试方法。...6.许多语言一个IDE AppCode本身支持Objective-C,Swift,C和C ++(包括现代C ++标准,libc ++和Boost)以及JavaScript,XML,HTML,CSS和XPath

    66521

    解决ModuleNotFoundError: No module named ‘dlib‘问题-提供3.7x与3.9两个版本

    链接:https://pan.baidu.com/s/1hL9TtwK5TuYcn1ntfjMDHg  提取码:1111 前置环境: python3.7版本安装 pip3 install cmake...cmake pip3 install boost pip3 install dlib-19.22.99-cp39-cp39-win_amd64.whl dlib作用 dlib是一个机器学习的开源库...Dlib是一个使用现代C++技术编写的跨平台的通用库,遵守Boost Software licence. ...● 可移植代码:代码符合ISO C++标准,不需要第三方库支持,支持win32、Linux、Mac OS X、Solaris、HPUX、BSDs 和 POSIX 系统 。...● 图形模型算法 ● 图像处理:支持读写Windows BMP文件,不同类型色彩转换 ● 数据压缩和完整性算法:CRC32、Md5、不同形式的PPM算法 ● 测试:线程安全的日志类和模块化的单元测试框架以及各种测试

    1.3K30

    CMake 秘籍(五)

    Google Test 框架 将项目作为超级构建进行管理 引言 每个项目都必须处理依赖关系,而 CMake 使得在配置项目的系统上查找这些依赖关系变得相对容易。...由于我们不希望看到下载的进度报告,我们还设置了DOWNLOAD_NO_PROGRESS选项为 true。 更新步骤留空。如果需要重新构建,我们不希望再次下载 Boost。...在第四章,创建和运行测试,第 3 个菜谱,定义单元测试并链接到 Google Test,我们使用 Google Test 框架实现了单元测试,并在配置时使用相对较新的FetchContent模块(自 CMake...关于如何使用该目标测试示例源码的讨论,我们请读者参考第四章,创建和运行测试,第 3 个菜谱,定义单元测试并链接到 Google Test: 我们首先包含FetchContent模块,它将提供我们所需的函数来声明...1 我们不希望看到下载进度,也不希望屏幕上显示配置、构建和安装的信息,我们关闭ExternalProject_Add命令: DOWNLOAD_NO_PROGRESS 1 LOG_CONFIGURE

    1.4K20

    CGAL的编译以及在VS中的使用

    \boost_1_71_0\lib64-msvc-14.1 然后是一个比较关键的步骤就是对Boost进行编译(这部最好做完整) cmd+r 进入命令行 cd到boost的文件夹内 在该目录下运行bootstrap.bat...运行后会产生不b2.exe等文件 Boost非常大 建议只编译CGAL需要的依赖库 b2.exe --with-system --with-thread 安装CMake 下载网址:http://www.cmake.org...//github.com/CGAL/cgal/releases 这里需要注意的一个点是 后面的CMake生成的build的文件夹中 如果是新版本的话 会不生成bin文件 目前原因未知 这里我下载的版本是...4.13.2 还有一个点是 如果是exe文件进行安装 极大可能在自动配置环境变量后会出现应用奔溃的情况 建议还是手动配置 PATH = D:\local\CGAL-4.13.2\auxiliary\gmp...\lib CGAL_DIR = D:\local\CGAL-4.13.2 目的是让CMake能找到CGAL 安装Qt 实际上Qt的配置不是必须的 有很多方法其实可以实现可视化这个功能 下载地址:https

    87820

    CLion 2022 for Mac(C和C ++ IDE智能代码编辑器)v2022.2.3中文激活版

    CLion 2022 for Mac一款C和C ++ IDE智能代码编辑器。CLion 2022版本侧重于质量改进。...它增强了远程开发的现有工作流、Docker、CMake 项目和 CUDA 调试,并解决了代码补全、内嵌提示和其他子系统中最恼人的错误。...CLion 2022 for Mac图片clion 2022功能特色智能代码辅助功能让 CLion 帮您处理日常工作,您可以专注于更重要的事情。...内置工具和集成CLion 不仅仅是一款编辑器,它提供强大的调试器和动态分析工具,可以轻松调查并解决问题;内置的 Google Test、Boost.Test 和 Catch 可以进行单元测试,同时默认支持许多常见的...CLion 支持 CMake、 Gradle 和兼容的数据库项目模型。 如果您使用了其他种类的项目,IDE 可以帮您将其导入 CMake。

    57920

    CLion 2022 for Mac(C和C ++ IDE智能代码编辑器)v2022.2.3中文激活版

    CLion 2022 for Mac中文激活版是一款非常出色的C/C++ 集成开发环境,CLion Mac版工具完美兼容mac系统,为用户提供智能编辑器、自动代码重构、代码分析、评估表达式等多种强大的功能...可帮助您即时分析项目,并提供CMake支持!CLion带有易于设置的开发环境,可以帮助您快速浏览项目中包含的文件,只需单击鼠标即可在编辑区域中打开它们。...CLion 2022 for Mac图片clion 2022功能特色智能代码辅助功能让 CLion 帮您处理日常工作,您可以专注于更重要的事情。...内置工具和集成CLion 不仅仅是一款编辑器,它提供强大的调试器和动态分析工具,可以轻松调查并解决问题;内置的 Google Test、Boost.Test 和 Catch 可以进行单元测试,同时默认支持许多常见的...CLion 支持 CMake、 Gradle 和兼容的数据库项目模型。 如果您使用了其他种类的项目,IDE 可以帮您将其导入 CMake。

    65510

    C和C ++ IDE智能代码编辑器:CLion 2022 中文版「winmac」

    CLion 2022 中文版是一款强大的C和C ++ IDE智能代码编辑器工具,在与 CMake 和 CMake 预设集成方面,CLion 2022.2 版本更出色。...CLion 2022 中文版 mac CLion 2022 中文版 Win 图片功能 电动工具1、用于电动语言智能C 和C ++编辑器由于本机C和C ++支持,包括现代C ++标准,libc ++和Boost...3、在一个地方你需要的一切您日常开发所需的一切包括:所有流行的VCS(Subversion,Git,GitHub,Mercurial,CVS和Perforce),Google Test,Boost.Test...和Catch框架,用于单元测试,Doxygen和数据库工具。...4、本地和远程工作使用嵌入式终端,无需离开IDE即可运行任何命令:本地或远程使用SSH协议。在本地编辑代码后,在本地或远程构建,运行或调试应用程序或单元测试。

    1.6K20

    CLion 2023 Mac版-最好的C++ IDE下载

    CLion 2023 for Mac是一款集成开发环境,专为C和C++开发者设计的软件,适用于Mac平台。该软件提供了丰富的功能和工具,可帮助开发人员在Mac上编写和调试高效、高质量的C/C++代码。...它支持各种流行的C/C++编译器和构建工具,包括GNU Compiler Collection (GCC)、Clang、Make、CMake、Ninja等,以及多个应用程序框架。...此外,它还支持各种流行的语言和框架,如C++ 11/14/17、Boost、Qt、STM32等等,可以利用它们的特性提高开发效率。接着,CLion 2023 for Mac具备超强的调试分析功能。...此外,该软件还支持单元测试和版本控制工具等,为开发人员提供了更多的支持和帮助。...该软件支持多种编译器、构建工具、语言和框架,提供了智能代码编辑器、调试分析工具、自动重构、单元测试和版本控制等功能,可以大大提高开发人员的生产效率和编程质量。

    1.7K20

    成为Oceanbase贡献者(2):源码解读build.sh debug --make 的执行过程

    工具开源软件开发:许多开源项目如 TensorFlow、Boost 等都使用 CMake 进行跨平台构建CMake 与CMakeLists.txt关系?...CMake本身不直接生成可执行文件,而是生成其他构建工具所需的中间文件例如Make能够输出各种各样的makefileMakefile:适合小型项目或需要手动调整构建流程的场景。...你可以直接运行这个文件来查看输出:....不包含 GNU 扩展:编译器不会启用任何 GNU 特定的扩展。可移植性更好:由于不包含 GNU 扩展,代码更容易在不同编译器之间移植。...包含 GNU 扩展:编译器会启用一些非标准的功能和特性,这些功能可能在其他编译器上不可用。

    21400

    CMake 秘籍(三)

    在本章中,我们将介绍以下内容: 创建一个简单的单元测试 使用 Catch2 库定义单元测试 定义单元测试并链接到 Google Test 定义单元测试并链接到 Boost 测试...以可移植的方式实现这一点将非常繁琐,因为可执行文件的位置和可执行文件后缀(例如,Windows 上的.exe后缀)可能在操作系统、构建类型和生成器之间有所不同。...我们邀请你也尝试执行以下命令,以探索单元测试框架提供的选项: $ ./cpp_test --help 它是如何工作的 由于 Catch2 是一个单头文件框架,因此不需要定义和构建额外的目标。...在本食谱中,我们将演示如何使用 CMake 和 Google Test 框架实现单元测试。与之前的食谱不同,Google Test 框架不仅仅是一个头文件;它是一个包含多个需要构建和链接的文件的库。...Boost 测试是 C++社区中另一个非常流行的单元测试框架,在本示例中,我们将演示如何使用 Boost 测试对我们的熟悉求和示例代码进行单元测试。

    96920
    领券