Tag: cpu architecture

什么是caching命中和caching未命中? 为什么上下文切换会导致caching未命中?

从第11章( 性能和可伸缩性 )和JCIP书籍的命名上下文切换部分: 当一个新的线程被切换时,它所需要的数据不太可能在本地处理器caching中,所以上下文切换会导致一连串的caching未命中,因此线程在第一次调度时会运行得更慢一些。 有人可以用一种容易理解的方式解释caching未命中的概念和其可能的相反( caching命中 )吗? 为什么上下文切换会导致很多caching未命中?

确定Windows上的静态库(LIB)的CPU体系结构

我刚刚在使用VS2008的64位Windows机器上构build了libpng。 它会在\ projects \ visualc71 \ Win32_Lib_Release目录(用作“LIB Release”的configuration)中生成一个libpng.lib文件。 我用dumpbin来检查这个LIB文件: C:\Temp\libpng-1.4.3>dumpbin projects\visualc71\Win32_LIB_Release\libpng.lib Microsoft (R) COFF/PE Dumper Version 9.00.30729.01 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file projects\visualc71\Win32_LIB_Release\libpng.lib File Type: LIBRARY Summary 8E4 .debug$S DF2 .drectve 2BCD .rdata 21165 .text C:\Temp\libpng-1.4.3> 它并不显示LIB文件的体系结构。 如何查找给定的LIB文件是为32位还是64位体系结构构build的?

确定Linux中二进制文件的目标体系结构(库或可执行文件)

我们遇到一个问题,这个问题涉及到一个运行在带有Via C3处理器的研华POS板上(相当老的)FC3下的Java应用程序。 Java应用程序有几个编译的共享库,通过JNI访问。 通过C3处理器被认为是i686兼容。 前一段时间,在MiniItx板上安装相同处理器的Ubuntu 6.10之后,我发现前面的语句不是100%正确的。 由于在C3处理器中缺乏一些特定和可选的i686指令,Ubuntu内核在启动时被挂起。 在使用i686优化时,GCC编译器默认使用缺lessC3实现i686集的这些指令。 在这种情况下,解决scheme是使用i386编译版本的Ubuntu发行版。 Java应用程序的基本问题是FC3发行版是通过从另一台PC的HD图像克隆而安装在HD上的,这次是Intel P4。 之后的发行需要一些黑客运行,如用i383编译版本replace一些软件包(如内核之一)。 问题是,工作一段时间后,系统完全挂起没有痕迹。 我担心一些i686代码会留在系统的某个地方,并可能随时随机执行(例如从挂起模式恢复之类的东西)。 我的问题是: 有没有什么工具或方法可以找出特定的体系结构是二进制文件(可执行文件或库)的目标,只要“ 文件 ”不能提供太多的信息?

英特尔x86处理器的L1内存caching在哪里logging?

我正在试图分析和优化algorithm,我想了解caching对各种处理器的具体影响。 对于最近的英特尔x86处理器(例如Q9300),很难find有关caching结构的详细信息。 尤其是,大多数网站(包括Intel.com )的后处理器规格不包括对L1caching的任何引用。 这是因为L1caching不存在,或者是由于某些原因认为不重要的信息? 有没有关于消除L1caching的文章或讨论? 运行各种testing和诊断程序(大部分是在下面的答案中讨论的)后,我得出结论,我的Q9300似乎有一个32K L1数据caching。 我还没有find一个明确的解释,为什么这个信息是如此难以通过。 我目前的工作理论是,L1caching的细节现在被英特尔视为商业秘密。

如何计算CPU使用率?

在我的桌面上,我有一个小部件告诉我当前的CPU使用情况。 它还显示了我的两个核心的使用情况。 我总是想知道,CPU如何计算它的处理能力有多less? 另外,如果CPU挂起来做一些激烈的计算,它怎么能(或者处理这个活动)检查使用情况,而不是挂起来呢?

致命错误:Visual Studio中的“无目标体系结构”

当我尝试在Win32或x64模式下使用Visual Studio 2010编译我的c ++项目时,出现以下错误: >C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(135): fatal error C1189: #error : "No Target Architecture" 我的预处理器定义说WIN32; _DEBUG; _CONSOLE;%(PreprocessorDefinitions) 什么是造成这个错误,我该如何解决它? // winnt.h: lines 127-136, MSVS says this is an inactive preprocessor block #if defined(_WIN64) #if defined(_AMD64_) #define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD ) #elif defined(_IA64_) #define PROBE_ALIGNMENT( _s ) (TYPE_ALIGNMENT( _s ) > TYPE_ALIGNMENT( DWORD […]

更新到Xcode 5 – ID:符号(S)未find架构armv7或armv7s链接器错误

我刚刚更新我的iPhone 4S软件到iOS 7 Beta 2,而我正在把一个新的应用程序(Phonegap)的最后一个接触..不是一个好主意! 完成后,Xcode没有检测到我的iPhone,所以我安装了Xcode 5testing版。 经过修改后,我终于find了我的手机。 现在唯一的问题是使用的架构有错误。 这里是错误正在产生: ld: warning: ignoring file /Users/———–/Library/Developer/Xcode/DerivedData/testtest-bmnbmujiosugcmgeiceofgcfmsec/Build/Products/Debug-iphoneos/libCordova.a, file was built for archive which is not the architecture being linked (armv7s): /Users/——–/Library/Developer/Xcode/DerivedData/testtest-bmnbmujiosugcmgeiceofgcfmsec/Build/Products/Debug-iphoneos/libCordova.a Undefined symbols for architecture armv7s: "_OBJC_METACLASS_$_CDVCommandDelegateImpl", referenced from: _OBJC_METACLASS_$_MainCommandDelegate in MainViewController.o "_CDVLocalNotification", referenced from: -[AppDelegate application:didReceiveLocalNotification:] in AppDelegate.o "_OBJC_CLASS_$_CDVCommandDelegateImpl", referenced from: _OBJC_CLASS_$_MainCommandDelegate in MainViewController.o "_OBJC_CLASS_$_CDVCommandQueue", referenced […]

陷阱和中断有什么区别?

陷阱和中断有什么区别? 如果术语对于不同的系统是不同的,那么它们在x86上意味着什么?

sjlj vs dwarf vs seh有什么区别?

我无法find足够的信息来决定使用哪个编译器来编译我的项目。 在不同的计算机上有几个程序模拟一个进程。 在Linux上,我正在使用GCC。 一切都很好。 我可以优化代码,它编译速度快,使用不太多的内存。 我用MSVC和GCC编译器做我自己的基准testing。 稍后会产生稍微更快的二进制文件(对于每个子体系结构)。 虽然编译时间比MSVC多得多。 所以我决定使用MinGW。 但在MinGW中找不到有关exception处理方法及其实现的解释。 我可以针对不同的操作系统和体系结构使用不同的发行版。 注意事项: 编译时间和内存对于我的使用来说并不重要。 只有重要的是运行时优化。 我需要我的程序足够快。 慢速编译器是可以接受的。 操作系统:Microsoft Windows XP / 7/8 / Linux 架构:英特尔酷睿i7 / Core2 /和一个非常古老的i686运行XP:P

直接读取程序计数器

英特尔CPU上的程序计数器是否可以在内核模式或其他模式下直接读取(即没有“技巧”)?