草庐IT

microsoft-sync-framework

全部标签

c++ - 为什么 Microsoft 的 std::string 实现需要堆栈上的 40 个字节?

最近看了thisvideo关于facebook的string实现,我很想看看Microsoft实现的内部结构。不幸的是,字符串文件(在%VisualStudioDirectory%/VC/include中)似乎不包含实际定义,而只是包含转换函数(例如atoi)和一些运算符重载。我决定从用户级程序中对它进行一些探索和研究。当然,我做的第一件事就是测试sizeof(std::string)。令我惊讶的是,std::string需要40个字节!(无论如何在64位机器上。)前面提到的视频详细介绍了facebook的实现如何只需要24个字节而gcc的实现需要32个字节,所以这至少可以说是令人震惊

c++ - 在 Microsoft Windows 上安装 RQuantLib

我需要在MicrosoftWindows机器上安装R包RQuantLib。这个包没有二进制文件,所以我下载了tar源。我打开它,它包含QuantLibC++库。所以我需要编译这个包。我不想安装VisualStudio,我使用的是eclipseIDE。我可以使用编译器cygwin来编译RQuantLib包的C代码吗?R在我的Windows机器上是否可以使用生成的编译代码?谢谢你的帮助。 最佳答案 开始无耻的外挂我写了关于howtobuildRQuantLibonWindows在我的博客上。我没有用Cygwin试过,但你可以用MinGW

电脑服务器离线安装.net framework 3.5解决方案(错误:0x8024402c )(如何确定当前系统是否安装NET Framework 3.5)

问题环境:    日常服务的搭建或多或少都会有需要到NETFramework3.5的微软程序运行框架,本次介绍几种不同的安装方式主要解决运行在Windows2012以上的操作系统的服务。NETFramework3.5是什么?        .NETFramework是微软公司推出的程序运行框架,主要包含运行库和公共语言集,3.5是版本号,目前最新的版本是4.0(不向下兼容)。.NETFramework设计初衷是,实现在不同的操作系统(如windows,unix,macos等)上均可以使用基于.NET开发的软件,实现软件共用。无论使用何种操作系统,只要在相应系统上安装.NETFramework,

Framework - ActivityThread 应用启动UI渲染流程

一、概念ActivityThread拥有 main(String[]agrs) 方法,作为程序的入口,是应用程序的初始化类。(ActivityThread不是主线程,它在 main() 方法中实例化,是运行在主线程中。)ApplicationThread是ActivityThread的子类,用作 ActivityThread 与AMS 进行 BInder通信的桥梁。Instrumentation管理 Application 和 Activity 声明周期的类,会在自己对应的方法中传入监听对象,执行该对象的生命周期方法。ActivityStackActivityThread 中对 Activit

c++ io streams sync_with_stdio 没有区别

出于某种原因,我无法使我的输出流使用该行运行得更快std::ios_base::sync_with_stdio(false);包含在我程序的开头。我正在用这两个程序对此进行测试:#includeintmain(){for(inti=0;i和#includeintmain(){std::ios_base::sync_with_stdio(false);for(inti=0;i每个程序的运行时间如下第一次测试(同步)real0m1.095suser0m0.472ssys0m0.299ssecond_test(关闭同步)real0m1.091suser0m0.471ssys0m0.299s我

c# Microsoft UI Automation

MicrosoftUIAutomation(UIA)是一种用于自动化Windows应用程序用户界面(UI)的框架。它允许开发人员编写自动化测试脚本、辅助技术应用程序和其他需要与应用程序交互的工具。以下是一些关于MicrosoftUIAutomation的重要信息:对象模型:UIA提供了一个层次化的对象模型,用于表示Windows应用程序的用户界面。每个UI元素都是一个可访问的对象,可以通过UIAAPI进行操作和检查。支持多种应用程序类型:UIA不仅支持传统的Win32应用程序,还支持现代的应用程序类型,如WPF、WinForms、Web应用程序以及一些第三方应用程序。辅助技术支持:UIA为辅助

c++ - Microsoft 的源注释语言 (SAL)——有什么方法可以利用它?

有什么方法可以利用微软的SAL,例如通过保留此信息的C解析器?还是由Microsoft制作,仅供Microsoft内部使用?它对许多任务都非常有用,例如为其他语言创建C库绑定(bind)。 最佳答案 不确定“利用”是什么意思,但目前VS2011Beta在执行代码分析时使用SAL注释,通过/analyze选项。注释只是来自sal.h的纯宏Microsoft鼓励使用(至少在VS环境中)。如果你只是想在预处理步骤后保留信息,你可以只将宏扩展到自己或者只是改变一个现有的开源预处理器来排除符号(VS也有一些扩展选项来自SAL宏的),但是使用注

35 | 并发安全字典sync.Map (下)

我们在上一篇文章中谈到了,由于并发安全字典提供的方法涉及的键和值的类型都是interface{},所以我们在调用这些方法的时候,往往还需要对键和值的实际类型进行检查。这里大致有两个方案。我们上一篇文章中提到了第一种方案,在编码时就完全确定键和值的类型,然后利用Go语言的编译器帮我们做检查。这样做很方便,不是吗?不过,虽然方便,但是却让这样的字典类型缺少了一些灵活性。如果我们还需要一个键类型为uint32并发安全字典的话,那就不得不再如法炮制地写一遍代码了。因此,在需求多样化之后,工作量反而更大,甚至会产生很多雷同的代码。知识扩展问题1:怎样保证并发安全字典中的键和值的类型正确性?(方案二)那么

c++ - __sync_val_compare_and_swap 与 __sync_bool_compare_and_swap

我一直在思考这两个函数的返回值。__sync_bool_compare_and_swap函数的返回值似乎有明显的好处,即我可以用它来判断交换操作是否发生。但是,我看不到__sync_val_compare_and_swap的返回值的良好用途。首先,让我们有一个函数签名供引用(来自GCC文档减去varargs):type__sync_val_compare_and_swap(type*ptr,typeoldvaltypenewval);我看到的问题是__sync_val_compare_and_swap的返回值是*ptr的旧值。准确地说,这是在设置了适当的内存屏障后,此函数的实现所看到的

c++ - 无法在 C++ Actor Framework 中声明模板类型的 actor

我正在尝试在C++actorframework(CAF)中声明一个强类型的actor,但由于某种原因我的代码无法编译。你能告诉我它有什么问题吗?#include"caf/all.hpp"templateclassDiscoverRequest{};templateclassDiscoverResponse{};templateclassDataRequest{};templateclassDataResponse{};templateusingBlockActor=caf::typed_actor>::with>,caf::replies_to>::with>>;错误信息:Block.