书栈网 · BookStack 本次搜索耗时 0.016 秒,为您找到 52 个相关结果.
  • 使用入门

    v1.5.x以上版本使用说明 v1.4.x以下版本使用说明 v1.5.x以上版本使用说明 请参考:编译和使用 v1.4.x以下版本使用说明 运行make r编译安装后,会在如下目录,生成对应的库文件: 头文件目录: ./tbox/pre/inc/$(PLAT)/$(ARCH)/ 库文件目录: ./tbox/pre/lib/$(PLAT...
  • 内存检测

    TBOX的内存分配在调试模式下,可以检测支持内存泄露和越界,而且还能精确定位到出问题的那块内存具体分配位置,和函数调用堆栈。 内存泄露检测 内存泄露的检测必须在程序退出的前一刻,调用tb_exit()的时候,才会执行,如果有泄露,会有详细输出到终端上。 tb_void_t tb_demo_leak () { tb_pointer_t...
  • 利用锁分析器进行线程竞争检测

    TBOX在调试模式下,回去自动检测每个库模块内部的线程锁的抢占情况,便于对线程做针对性的一些优化。 目前可以探测使用内置mutex、spinlock的锁抢占。在程序退出运行前,会在终端打印所有锁的抢占信息: [ tbox ]: [ lock_profiler ]: lock : 0x7fb273000328 , name : aicp ...
  • stackless协程使用详解

    切换 参数传递 挂起和恢复 等待 信号量和锁 tbox 之前提供的stackfull协程库,虽然切换效率已经非常高了,但是由于每个协程都需要维护一个独立的堆栈, 内存空间利用率不是很高,在并发量非常大的时候,内存使用量会相当大。 之前考虑过采用stacksegment方式进行内存优化,实现动态增涨,但是这样对性能还是有一定的影响,暂时不去考虑了...
  • 切换全局内存分配器

    tbox的默认内存分配,是完全基于自己的内存池架构,支持内存的快速分配,和对碎片的优化,并且支持各种内存泄露、溢出检测。 如果不想用tbox内置的默认内存分配管理,也可以灵活切换到其他分配模式,因为tbox现在已经完全支持allocator架构, 只要在init阶段传入不同的分配器模型,就能快速切换分配模式,例如: -- 采用默认的 tb...
  • 打印输出

    在终端下显示输出一行信息,会自动换行,调试、发布模式都会显示 // 显示: [tbox]: hello world tb_trace_i ( "hello world" ); 注: 每行输出都带有标记前缀,来表示哪个模块的信息,默认是[tbox], 但也可以通过修改TB_TRACE_PREFIX宏, 来重定义。 输出调试信息,仅在调试模式...
  • 裁剪和定制化编译

    v1.5.x以上版本 v1.4.x以下版本 默认配置 最小化编译 禁用浮点运算 默认编译出来的tbox库,支持的功能比较全,带有所有模块,并且支持ssl(依赖polarssl/openssl)、gzip(依赖zlib)、database(依赖sqlite3/mysql)。 因此生成的库文件偏大,而且会依赖三个第三方库,如果你用不到上述三个模块,...
  • 实现json解析工具jcat

    jcat是一个shell下的解析json的工具,具有以下功能: 支持指定路径解析,打印指定路径下的所有对象信息 支持宏路径,可以级联宏替换 使用tbox进行了跨平台支持,预编译版本直接可以在./tbox/tool目录下找到,因为新版tbox makefile架构就是采用jcat来解析*.pkg/manifest.json清单文件 使用方式拿polar...
  • 使用本地包

    通过在项目中内置依赖包目录以及二进制包文件,可以方便的集成一些第三方的依赖库,这种方式比较简单直接,但是缺点也很明显,不方便管理。 以tbox工程为例,其依赖包如下: - base . pkg - zlib . pkg - polarssl . pkg - openssl . pkg - mysql . pkg - p...
  • 针对嵌入式平台的微内核编译

    为了进一步裁剪tbox,更好的适配嵌入式开发平台,tbox新增了--micro=y 的微模块编译选项 如果启用此编译选项,那么只会编译tbox里面较轻量的一些模块,是的编译后的库大小,尽量保证在64K左右。 先来讲讲一些跟库大小相关的编译选项: * `--smallest=y` : 通用平台,最小编译模式,会禁用所有第三方依赖库,禁用所有扩展...