书栈网 · BookStack 本次搜索耗时 0.043 秒,为您找到 52 个相关结果.
  • 高精度定时器的使用

    tbox内部提供了两种定时器实现:timer和ltimer timer: 高精度版本,采用最小堆实现,复杂度是:O(log(n)) ltimer: 低精度版本,采用linux内核中的timing-wheel算法,复杂度是:O(1) 这里主要讲解下,如何使用timer实现高精度的定时器任务,精确到ms级别,对于低精度的ltimer,可以参考:低精度定时...
  • 条件判断

    is_os 判断当前构建目标的操作系统 is_arch 判断当前编译架构 is_plat 判断当前编译平台 is_host 判断当前主机环境的操作系统 is_mode 判断当前编译模式 is_kind 判断当前编译类型 is_option 判断选项是否启用 is_config 判断指定配置是否为给定的值 has_config ...
  • 按位操作

    除了static_stream还有stream可以进行按位读写之外,TBOX还提供了更加原始、更加底层的位数据操作接口,例如直接对某个数据指针的位读取操作,可以使用utils库的tb_bits_get_xxx和tb_bits_set_xxx 系列接口, 这个更加的轻量: // p指向某个数据地址 tb_byte_t * p = data ;  ...
  • 流的整体架构

    TBOX主要有三种流 stream : 最常用的流,一般用于单路阻塞、非阻塞 io 的处理,接口简单易用 async_stream :异步流,基于 asio 的流,全程回调处理,可以在单个线程里支持多路流的并发,节省系统资源,提高效率 static_stream :静态流,用于对纯 buffer 的位流处理,一般用于各种解析器 不管是s...
  • 利用asio开发的轻量级高性能http服务器

    这个只是个demo程序,仅做参考。功能做到了最简化,只支持get请求,但是是性能还是很不错的,支持大量并发操作,资源使用量低,非常适合在嵌入式平台使用。 使用当前目录作为根目录并运行: ./httpd 指定根目录并运行: ./httpd /home/xxxx/root /* //////////////////////////////////...
  • xml的解析

    object库仅仅提供了对指定对象元素解析模式,使用上较为简单方便,但是有所局限。 如果要支持大数据的xml解析,以及对元素的更灵活控制,可以直接使用tbox底层单独提供的xml模块。 tbox的xml库提供了两种解析模式:DOM解析和SAX解析。 DOM方式采用dom对象树,一次性解析到内存,这跟object的类似,但是可以控制所有元素标记。 SAX...
  • json、xml、plist的解析和生成

    object库,提供运行时对象支持,通过引用计数维护所有对象。只要是继承自tb_object_t的对象类型都是可以经过扩展实现序列化和反序列化。 库内部也已经提供了常用的对象类型: tb_object_data_t : 数据对象类型 tb_object_date_t : 日期对象类型 tb_object_null_t : 空值对象类...
  • 利用传输池和线程池实现一个简单的横向爬虫

    作为参考例子,这个爬虫实现的非常简单,连数据库都没用到,如果缓存的任务满了,就直接丢弃后续新的任务,所以如果要在实际环境中使用,还需要加点其他逻辑代码,这边仅仅做个参考,所以完全简化了。 针对重复url的检测,这边使用了bloom filter算法进行了优化,对html文档的url提取,都是直接放入线程池中来做。 支持限速、指定下载目录、指定user-...
  • Awesome xmake

    示例 包仓库 插件 XMake插件 IDE编辑器插件 项目 文章 视频 其他 awesome-xmake ...
  • 利用bloom filter算法处理大规模数据过滤

    Bloom Filter是由Bloom在1970年提出的一种快速查找算法,通过多个hash算法来共同判断某个元素是否在某个集合内。可以用于网络爬虫的url重复过滤、垃圾邮件的过滤等等。 它相比hash容器的一个优势就是,不需要存储元素的实际数据到容器中去来一个个的比较是否存在。 只需要对应的位段来标记是否存在就行了,所以想当节省内存,特别适合海量的数据处...