小编Jay*_*Jay的帖子

最快的c ++序列化?

大家早上好,

我正在为c ++寻找一种非常快速的二进制序列化技术.我只需要序列化对象中包含的数据(没有指针等).我希望它尽可能快.如果它特定于x86硬件是可以接受的.

我熟悉这样做的C方法.作为一项测试,我在板凳上标记了几种技术.我发现C方法比我实现的最好的C++方法快40%.

有关如何改进C++方法(或执行此操作的库)的任何建议?任何可用于内存映射文件的东西?

谢谢

// c style writes
{
   #pragma pack(1)
   struct item
   {
      uint64_t off;
      uint32_t size;
   } data;
   #pragma pack

   clock_t start = clock();

   FILE* fd = fopen( "test.c.dat", "wb" );
   for ( long i = 0; i < tests; i++ )
   {
      data.off = i;
      data.size = i & 0xFFFF;
      fwrite( (char*) &data, sizeof(data), 1, fd );
   }
   fclose( fd );

   clock_t stop = clock();

   double d = ((double)(stop-start))/ CLOCKS_PER_SEC;
   printf( "%8.3f seconds\n", d ); …
Run Code Online (Sandbox Code Playgroud)

c++ serialization

19
推荐指数
3
解决办法
2万
查看次数

跨平台键盘/鼠标输入推荐

有没有人对一个好的跨平台输入库有任何建议?我想得到:

* at least keyboard and mouse input
* on at least the big three operating systems
* Small/fast
* C or C++
* permissive licensing gpl2/mit/free/etc.
Run Code Online (Sandbox Code Playgroud)

到目前为止我见过:

* OIS (used in Ogre) http://sourceforge.net/projects/wgois/
* SDL (used everywhere it seems, might be a clue) http://www.libsdl.org/index.php
* Allegro http://www.talula.demon.co.uk/allegro/readme.html
Run Code Online (Sandbox Code Playgroud)

有没有人使用过这些,或者知道其他可能有用的东西?

谢谢

c c++ cross-platform input

13
推荐指数
1
解决办法
6644
查看次数

使用XSLT的多个键上的不同节点

我想在多个级别上从我的xml中获取不同的节点.任何人都可以给我一些提示如何做到这一点?我用Google搜索的方法(Muenchian方法,for-each-groups)用单个分组键和普通层次结构解释.

这是我的xml的一个例子:

<persons>
 <person>
  <name>Tom</name>
  <age>20</age>
  <mails>
   <mail>x@test.com</mail>
   <mail>y@test.com</mail>
  </mails>
 </person>
 <person>
  <name>Tom</name>
  <age>20</age>
  <mails>
   <mail>y@test.com</mail>
   <mail>z@test.com</mail>
  </mails>
 </person> 
</persons>
Run Code Online (Sandbox Code Playgroud)

我想根据名称和年龄有不同的人员节点,还有一组不同的邮件节点.因此,对于该示例,期望的输出将是:

<persons>
 <person>
  <name>Tom</name>
  <age>20</age>
  <mails>
   <mail>x@test.com</mail>
   <mail>y@test.com</mail>
   <mail>z@test.com</mail>
  </mails>
 </person>
</persons>
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?非常感谢提前.

xslt grouping distinct

7
推荐指数
1
解决办法
8372
查看次数

BizTalk:查找文档规范失败

大家下午好,

我有一个BizTalk编排的问题,这真的很奇怪.

我的业务流程的第一个接收形状失败,并显示以下消息:

There was a failure executing the receive pipeline:
 "Microsoft.BizTalk.DefaultPipelines.XMLReceive, Microsoft.BizTalk.DefaultPipelines
Source: "XML disassembler"
Receive Port: "ReceiveCanonicalPort"
Reason: Finding the document specification by message type
"http://www.openapplications.org/oagis/9#ProcessInvoice" failed.
 Verify the schema deployed properly.  
Run Code Online (Sandbox Code Playgroud)

我把测试文档与前几行放在一起,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<ProcessInvoice
  xmlns="http://www.openapplications.org/oagis/9"
  releaseID="9.0"
  targetNamespace="http://www.openapplications.org/oagis/9"
  >
Run Code Online (Sandbox Code Playgroud)

我已经检查了什么:

我检查了架构:目标命名空间是'http://www.openapplications.org/oagis/9'根节点是'ProcessInvoice'

架构验证.

我的输入文件验证了架构.

我已经检查过部署了架构.

我查看是否有另一个具有重复命名空间和根节点的模式.

我重新启动了主机实例并重新部署了几次.

我尝试将xml反汇编程序'允许无法识别的消息'属性设置为true.这导致对象未设置为实例异常.这似乎表明它没有反序列化它.

我向伟大的神Boogie祈祷.

还有其他想法吗?

谢谢

biztalk

6
推荐指数
1
解决办法
8615
查看次数

使用动态创建的QML项时Qt错误消息?

使用动态创建的项目时是否可能获得Qt错误消息?

我已经安装了一个消息处理程序来在运行时捕获Qt输出:

qInstallMessageHandler( myMessageOutput );
Run Code Online (Sandbox Code Playgroud)

我将一个基本的qml文件加载到QQuickView中,它工作正常.如果qml源中存在错误,它们将显示在我的日志中.如果我动态创建项目并且它们包含错误,则它会在没有任何消息的情

我创建这样的动态对象:

var component = Qt.createComponent( "config.qml" );
var dlg = component.createObject( parentId, {} );
Run Code Online (Sandbox Code Playgroud)

我收到的唯一错误如下:

'qml\qqmlcomponent.cpp':845 function: 'QObject* QQmlComponentPrivate::beginCreate(QQmlContextData*)'|Qt Warning: QQmlComponent: Component is not ready
Run Code Online (Sandbox Code Playgroud)

此错误是针对它尝试加载的qml中的任何类型的问题编写的.

qml qt5

5
推荐指数
1
解决办法
1万
查看次数

在运行时添加nHibernate映射?

背景:

我试图使用nHibernate时遇到映射失败.该应用程序由几个程序集组成.其中一个程序集是一个有用的例程库,另一个是使用该库的应用程序代码.库程序集将自身添加到nHibernate配置中,但由于它不了解其他程序集,因此不会添加它们.我的xml映射文件位于应用程序程序集中.我认为它没有找到它,因为它没有查看应用程序集.

问题: 您是否可以映射到任意程序集中的类而不将其添加到配置中?

如果没有,您可以在运行时添加映射吗?

谢谢

ps我确实确保映射文件被标记为嵌入式资源


更新 - 2009年4月3日

我更改了底层库以允许在初始化时添加程序集.这似乎很有效.

nhibernate

4
推荐指数
1
解决办法
7658
查看次数

列表项的动画/重绘Qt QListView

我想要实现的目标:

一种可视指示,用于引起对QListView中新添加项目的注意.我想到了背景颜色'悸动'一次(从颜色渐变到背景).

设置

我有一个模型/视图使用QListView显示QStandardItems.Qt版本4.7

我尝试过的:

我创建了一个派生自QStyledItemDelegate的新类.我有自己的绘制方法来渲染项目.那部分有效.我创建了一个QTimeLine对象并将其设置为创建事件以重绘项目.

我无法弄清楚如何触发QListView项目的重绘.

在项委托构造函数中:

   timeLine = new QTimeLine( 3000, this );
   timeLine->setFrameRange( 100, 0 );
   connect( timeLine, SIGNAL( frameChanged( int ) ), this, SLOT( update() ) );
   timeLine->start();
Run Code Online (Sandbox Code Playgroud)

我尝试连接到sizehintChanged事件,但这不起作用

void myDelegate::update()
{
   const QModelIndex index;
   emit QStyledItemDelegate::sizeHintChanged( index );
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?这可以用样式表来完成吗?

c++ qt

3
推荐指数
1
解决办法
2230
查看次数

为大于内存的数据生成哈希值(不会被捕)

下午好!;)

我想做的事:

我有兴趣验证传输的文件完整性.

我是怎么找到它的:

我正在考虑使用哈希码,但有一个问题.文件可能非常大,所以我需要能够迭代生成哈希.我无法将整个文件加载到内存中.

到目前为止我看过的内容:

我调查murmur3绞纱散列函数.我相信我理解如何使它与绞纱一起工作,但我构建的版本未通过所有已知的结果单元测试.我不确定如何"连锁"杂音以获得有效的结果.

有什么建议?

c++ hash murmurhash

2
推荐指数
1
解决办法
411
查看次数

在biztalk发送端口中设置输出文件名

下午好,

我正在尝试在发送端口中设置输出文件名,并且可用的文件名宏将无法正常工作.

我需要"file.YYYYMMDD_HHMMSS"形式的东西.有一个日期时间组合宏(格式错误),一个仅限时间的宏,但没有仅限日期的宏.

我没有这个过程的编排.

有什么办法可以在地图或管道中设置文件名吗?

谢谢!

biztalk

2
推荐指数
1
解决办法
8475
查看次数

标签 统计

c++ ×4

biztalk ×2

c ×1

cross-platform ×1

distinct ×1

grouping ×1

hash ×1

input ×1

murmurhash ×1

nhibernate ×1

qml ×1

qt ×1

qt5 ×1

serialization ×1

xslt ×1