Skip to content

Latest commit

 

History

History
94 lines (62 loc) · 3.55 KB

README.md

File metadata and controls

94 lines (62 loc) · 3.55 KB
title
Apriluestc's projects

git 命令

包括代码上传,分支管理,用户信息配置

URL:https://github.com/Apriluestc/2020/blob/master/blog/doc/%E5%85%B6%E4%BB%96/git%E5%91%BD%E4%BB%A4.md

调试技巧

VS2017 调试、gdb 调试,包含断点调试、单步调试、查看函数调用栈信息等

URL:https://github.com/Apriluestc/2020/blob/master/blog/%E9%A1%B9%E7%9B%AE/debug.md

基于 UDP socket 的聊天室

URL:https://github.com/Apriluestc/op.im

本项目为 C++ 编写的多人聊天室,使用 UDP socket 进行通信,支持多人聊天、支持语音聊天

技术特点

  • C++ STL
  • 生产者消费者模型
  • 多线程技术,多线程同步原语同步与互斥
  • UDP socket 编程

Web 服务器

URL:https://github.com/Apriluestc/web.d

【测试页】Apriluestc's pub

项目介绍

本项目为 C++ 11 编写的高性能 Web 服务器,使用状态机解析了 GET、POST 请求,可静态处理资源,支 持 HTTP 长连接、支持管线化请求,并实现了异步日志,实时记录服务器运行状态,经 webbench 测试该服务器可达 30000 并发

技术特点

  • 使用 Epoll 边沿触发、非阻塞 IO、Reactor 模式
  • 使用多线程技术充分发挥多核 CPU 性能
  • 定时器定时关闭超时请求和剔除不活跃连接
  • 使用状态机解析了 GET 和 POST 请求
  • 主线程负责 accept 请求,并轮询分配给其他 IO 线程,这样一来锁竞争只会出现在主线程和某一特定线程(如:IO 线程、计算县城、工作线程)
  • 使用 eventfd 跨线程异步唤醒
  • TCP 接收发送环形缓冲区
  • 使用智能指针、RAII 机制规避程序中出现内存泄漏的可能
  • 异步日志实时记录服务器运行状态(便于 Debug)
  • webd 服务以 dameon 进程运行

文件压缩

URL:https://github.com/Apriluestc/compress

本项目为 C++ 编写的文件压缩工具,使用哈夫曼压缩算法和 lz77 算法实现,支持文件夹压缩、支持文件压缩

技术特点

  • 哈夫曼压缩算法
  • lz77 压缩算法

压缩测试

【使用方法]./Jarvis 0001.txt

  • 哈夫曼压缩测试(txt、png、pdf)

    • 文件大小 37M,压缩后 16M,压缩时间 40.04 s,解压缩时间 7.69 s
    • 文件大小 47M,压缩后 20M,压缩时间 49.10 s,解压缩时间 8.97 s
    • 文件大小 20K,压缩后 19K,压缩时间 0.08 s,解压缩时间 0.02 s
    • 文件大小 72K,压缩后 71K,压缩时间 0.2 s,解压缩时间 0.04 s
    • 文件大小 74M,压缩后 73M,压缩时间 146.21 s,解压缩时间 23.47 s
  • Lz77 压缩测试(分别为 txt、png、pdf)

    • 文件大小 37M,压缩后 34M,压缩时间 80.00 s,解压缩时间 26.28 s
    • 文件大小 47M,压缩后 44M,压缩时间 100.45 s,解压缩时间 32.43 s
    • 文件大小 42M,压缩后 39M,压缩时间 89.12 s,解压缩时间 29.39 s
    • 文件大小 20K,压缩后 20K,压缩时间 0.40 是,解压缩时间 0.00 s
    • 文件大小 72K,压缩后 80K,压缩时间 3.25 s,解压缩时间 0.00 s
    • 文件大小 1.2M,压缩后 1.4M,压缩时间 49.66 s,解压缩时间 0.11 s

智能语音 ai 工具

URL:https://github.com/Apriluestc/Jarvis

������ Linux 智能语音 Ai 工具 Jarvis,该项目基于百度语音开源 SDK & 图灵机器 人搭建的,目前没有接入微信平台(ps:很简单的一个项目,主要用于练习开源库、开源接口的使用)

项目功能

  • 支持语音识别、语音合成
  • 支持语音操作指令(如:语音查看内存、等等)