草庐IT

cpu-type

全部标签

c++ - 整数中的每个字节如何存储在 CPU/内存中?

我试过了charc[4];inti=89;memcpy(&c[0],&i,4);cout输出如下:89000这很好地训练了我的胃,因为我认为这个数字会像这样保存在内存中0x00000059那么c[0]怎么会是89呢?我认为它应该在c[3]... 最佳答案 因为你运行的处理器是little-endian.交换多字节基本类型的字节顺序。在大端机器上,它会如您所料。 关于c++-整数中的每个字节如何存储在CPU/内存中?,我们在StackOverflow上找到一个类似的问题:

c++ - FMT C++ 库 : allow user to set format specifiers for custom type

我有一个自定义类型,例如structcustom_type{doublevalue;};我想为此类型设置一个自定义的FMT格式化程序。我执行以下操作并且有效:namespacefmt{templatestructformatter{templateconstexprautoparse(ParseContext&ctx){returnctx.begin();};templateautoformat(constcustom_type&v,FormatContext&ctx){returnformat_to(ctx.begin(),"{}",v.value);}};但问题是,输出格式是由模板

c++ - 如何解释 Google 性能工具 CPU 分析器中的地址

我的C++程序消耗大量CPU,并且在运行时消耗更多。我使用GooglePerformanceTools来分析CPU使用情况,这就是我得到的结果:(pprof)topTotal:1343samples133099.0%99.0%133099.0%0x0000000801dcb11c70.5%99.6%70.5%0x0000000801dcb11e40.3%99.9%40.3%program::threadWorker10.1%99.9%10.1%0x0000000801dcb11010.1%100.0%10.1%0x00007fffffffffc0但是,这里显示的5个进程中只有1个是实际

c++ - 编写程序使CPU使用率达到50%左右

问题描述问题的目标是在上写一个程序视窗将CPU使用率保持在大约50%百分。在Windows上,我们可以使用任务管理器或Perfmon.exe用于监控CPU使用率。CPU使用率应该接近50%,因为操作系统还有很多其他的任务,我们只取CPU的大概使用率。CPU可以是多核处理器或单核处理器,所以通用解决方案受到青睐问题的根源原始问题来自于编程之美的第1.1章问题上的个人努力环境处理器:Inteli5-3470,4核,4线程系统:Windows7开发环境:VisualStudio2010,boost库第一次尝试我的第一次尝试没有考虑多核和多线程,所以它不起作用,但它提供了一个想法:如果我们希望

c++ - g++4.9 错误允许 std::vector<C_type_array>

考虑以下代码:#include#include#includeusingnamespacestd;typedefdouble(C_array)[10];intmain(){std::vectorarr(10);//let'sinitializeitfor(inti=0;i我刚从@juanchopanzahttps://stackoverflow.com/a/25108679/3093378那里得知这段代码不应该是合法的,因为一个普通的旧C风格的数组是不可分配/不可复制/可移动的。然而,即使使用-Wall-Wextra-pedantic,g++也会飞过代码。clang++不编译它。当然,

c++ - 检测某些非数字类型 T 的 std::numeric::type<T> 的特化

我想检查一个类型是否在std::numeric_limits中有一个条目。当类型是一个数组时——(或者可能不是一个数字?)我得到一个编译器错误。这使我无法根据std::numeric_limits是否支持该类型来检测和分支。如果有人愿意分享任何见解,我将不胜感激。//thefollowingprovokescompilererroronClang//Functioncannotreturnarraytype'type'(aka'char[20]')static_assert(!std::numeric_limits::is_specialized,"!std::numeric_limi

c++ - 无法使用自动参数化 true_type 检测 T::value()

使用SFINAE,has_value_int和has_value_auto两者都尝试检测类T是否有一个staticconstexpr名为value的函数.使用int参数化true_type,has_value_int效劳于演示类(class)pass和fail.使用auto参数化true_type,has_value_auto总是返回false。使用int有什么区别?并使用auto,为什么auto不工作?具体来说,为什么重载决策更喜欢match_auto(...)至match_auto(int)?#includeusingnamespacestd;//parametrizetrue_t

c++ - 生成当前获胜的随机数 : CPU vs GPU,?

我一直致力于物理模拟,需要生成大量随机数(如果你想要一个想法,至少10^13)。我一直在使用Mersennetwister的C++11实现。我还读到,同样算法的GPU实现现在是Cuda库的一部分,并且GPU可以非常高效地完成这项任务;但我找不到明确的数字或​​基准比较。例如,与8核i7相比,上一代的Nvidia卡在生成随机数方面是否性能更高?如果是,价格是多少?我认为我的模拟可以通过让GPU生成大量随机数并由CPU完成其余的工作来获得好处。 最佳答案 可以在这里找到一些比较:https://developer.nvidia.com/

c++ - C++11 中的 sequenced-before 关系是否会阻止编译器/CPU 重新排序?

我知道现代C++编译器和处理器通常会通过有时重新排序指令来执行某些优化以获得更好的性能。C++11引入了sequencedbefore关系。如果指令A在程序顺序中出现在指令B之前,我们说AsequencedbeforeB。intdata=0;boolready=0;//AissequencedbeforeBdata=6;//Aready=true;//BC++11还定义了对sequencedbefore关系的要求。GivenanytwoevaluationsAandB,ifAissequencedbeforeB,thentheexecutionofAshallprecedetheexe

c++ - 是否可以根据type_info创建对象?

差不多就是标题:可以根据type_info创建对象吗?这样做的目的是推迟对象的创建。例如,这是原始的“未延迟”代码:Foo*a=newFoo();Bar*b=newBar();这是延迟的://Storetypeindicesintoavectorstd::vectortypes;types.push_back(std::type_index(typeid(Foo)));types.push_back(std::type_index(typeid(Bar)));//Iteratethroughvector,createobjects?Isitpossible?如果这不可能,是否有任何其他