当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

Adata

多语言的序列化库
授权协议 Boost
开发语言 C/C++
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 国产
投 递 者 湛铭
操作系统 Windows
开源组织
适用人群 未知
 软件概览

AData 是一个多语言的序列化库,和 protocol buffer 类似。

目前支持C++/Lua(5.1,5.2,5.3,jit)/C#,非常适合游戏的通讯协议和数据存储

Adata的优势,生成的代码量少,和protocol buffer比较代码量大幅减少,可读性强

功能上,除了protocol buffer支持的向前兼容,增加了向后兼容的支持

C++版特性,生成代码自动优化布局,对齐方式占用内存最少,性能强大,高于官方protocol buffer一个数量级,自动化生成代码只有头文件,使用只需要包含adata.hpp头文件,不需要编译等麻烦工作

lua版本特性,性能强大,高于云风实现的https://github.com/cloudwu/pbc,高于云风实现的https://github.com/cloudwu/sproto

luajit 版本特性,不依赖C++扩展,只需要2个lua文件就可以使用,适合客户端,性能依旧是亮点

C# 版本特性,只需要一个adata.cs就可以使用,性能还是强于protocol buffer的C#版本

如果喜欢json的通讯方式,又想用C++爽快的写,请移步 http://git.oschina.net/lordoffox/ajson

  • 在scanpy中直接加载稀疏矩阵相比加载密集矩阵可以帮助节省数据加载的内存占用 from scipy.io import mmread import scipy.sparse as sp import anndata as ad import joblib #加载数据 X = mmread( 'matrix.mtx.gz') X = X.T X = sp.csr_matrix(X) #将读取的c

  • import pandas as pd ; import numpy as np ; from scipy import sparse import scanpy as sc import anndata as ad import os 加载datafram格式的rna_counts数据集构建AnnData X = pd.read_csv(r'./1.rnacounts.tsv', sep =

 相关资料
  • 编辑器扩展系统中内置的多语言方案允许你配置多份语言的键值映射,并根据编辑器当前的语言设置在插件界面显示不同语言的文字。 要启用多语言功能(以下简称 i18n),请在扩展包的目录下新建一个名叫 i18n 的文件夹,并为每种语言添加一个相应的 JavaScript 文件,作为键值映射数据。数据文件名应该和语言的代号一致,如 en.js 对应英语映射数据。 下面是键值映射数据源的例子: // en.js

  • 问题内容: log4j网络适配器将事件作为序列化的Java对象发送。我希望能够捕获此对象并以另一种语言(python)将其反序列化。这可能吗? 注意 网络捕获很容易;它只是一个TCP套接字并在流中读取。困难是反序列化部分 问题答案: 通常,不会。 本文档中定义了Java序列化的流格式,但是您需要访问原始类定义(以及将它们加载到Java运行时中)以将流数据转换回接近原始对象的内容。例如,类可以定义w

  • 最佳实践 保存模型的推荐方法 这主要有两种方法序列化和恢复模型。 第一种(推荐)只保存和加载模型参数: torch.save(the_model.state_dict(), PATH) 然后: the_model = TheModelClass(*args, **kwargs) the_model.load_state_dict(torch.load(PATH)) 第二种保存和加载整个模型:

  • Go语言具有支持高并发的特性,可以很方便地实现多线程运算,充分利用多核心 cpu 的性能。 众所周知服务器的处理器大都是单核频率较低而核心数较多,对于支持高并发的程序语言,可以充分利用服务器的多核优势,从而降低单核压力,减少性能浪费。 Go语言实现多核多线程并发运行是非常方便的,下面举个例子: 运行结果如下: 线程0, sum为:10000 线程2, sum为:10000 线程3, sum为:10

  • 问题内容: 我正在一个项目中,我需要在Java 6应用程序中序列化一些数据并将其反序列化为ac#2.0应用程序。我是否可以考虑使用某种策略或已有的某种方法来使用这两种语言来完成此任务?我猜他们都支持XML序列化,但是我确实需要将其二进制序列化。 问题答案: 协议缓冲区将是一个不错的选择。在C#方面,我建议在此用例中使用Jon Skeet的dotnet- protobufs ,因为它在两侧都有相同的

  • 定义 为组件内建文案提供统一的国际化支持。 说明 LocaleProvider 使用 React 的 context 特性,只需在应用外围包裹一次即可全局生效。 两种方式更改信息展示: 1、配置LocaleProvider组件的locale属性值,如:enUS、zhCN。 2、直接更改组件内属性值,如Search组件的placeholder属性值。 import enUS from '../..