在我的桌面上,我有一个小小部件告诉我当前的CPU使用情况.它还显示了我的两个核心的使用情况.
我总是想知道,CPU如何计算其处理能力的使用量?此外,如果CPU挂起来进行一些强烈的计算,它怎么能(或任何处理此活动)检查使用情况,而不会挂断?
我刚刚将我的iPhone 4S软件更新到iOS 7 Beta 2,而我正在最后接触到一个新的应用程序(Phonegap)..不是一个好主意!
完成后,Xcode没有检测到我的iPhone,所以我安装了Xcode 5 beta.在摆弄它之后我终于得到它来检测我的手机.现在唯一的问题是使用的架构存在错误.
以下是产生的错误:
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 from:
_OBJC_CLASS_$_MainCommandQueue in MainViewController.o
"_OBJC_METACLASS_$_CDVViewController", referenced from:
_OBJC_METACLASS_$_MainViewController in MainViewController.o
"_OBJC_METACLASS_$_CDVCommandQueue", referenced from:
_OBJC_METACLASS_$_MainCommandQueue in MainViewController.o
"_CDVPluginHandleOpenURLNotification", referenced from:
-[AppDelegate application:handleOpenURL:] in AppDelegate.o
"_OBJC_CLASS_$_CDVViewController", referenced from: …Run Code Online (Sandbox Code Playgroud) 有人知道在perf stat结果中stalled -cycles-frontend和stalled-cycles-backend是什么意思吗?我在互联网上搜索但没有找到答案.谢谢
$ sudo perf stat ls
Performance counter stats for 'ls':
0.602144 task-clock # 0.762 CPUs utilized
0 context-switches # 0.000 K/sec
0 CPU-migrations # 0.000 K/sec
236 page-faults # 0.392 M/sec
768956 cycles # 1.277 GHz
962999 stalled-cycles-frontend # 125.23% frontend cycles idle
634360 stalled-cycles-backend # 82.50% backend cycles idle
890060 instructions # 1.16 insns per cycle
# 1.08 stalled cycles per insn
179378 branches # 297.899 M/sec
9362 branch-misses # 5.22% of all …Run Code Online (Sandbox Code Playgroud) linux optimization performance cpu-architecture computer-architecture
从第11章(性能和可扩展性)和部分命名上下文切换的的JCIP书:
当切换新线程时,它所需的数据不太可能在本地处理器高速缓存中,因此上下文切换会导致一连串的高速缓存未命中,因此线程在首次调度时运行速度会慢一些.
language-agnostic cpu concurrency cpu-architecture cpu-cache
的冯·诺依曼体系结构描述了指令和数据被存储在存储器中所存储的程序的计算机和机的工作原理,通过改变其内部状态,即,一个指令在某些数据进行操作,并修改数据.因此,系统中存在状态.
的图灵机体系结构的工作原理是在磁带上操纵符号.即存在具有无限数量的槽的带,并且在任何一个时间点,图灵机都在特定的槽中.根据在该插槽读取的符号,机器可以更改符号并移动到不同的插槽.所有这些都是确定性的.
这两个模型之间有什么关系吗?冯·诺伊曼模型是基于图灵模型还是受其启发?
我们可以说图灵模型是Von Newman模型的超集吗?
功能编程是否适合图灵模型?如果是这样,怎么样?我认为功能编程并不适合Von Neuman模型.
computer-science cpu-architecture turing-machines von-neumann
我们遇到了一个与在Advantech POS板上使用Via C3处理器在(相当旧的)FC3下运行的Java应用程序相关的问题.java应用程序有几个已编译的共享库,可通过JNI访问.
通过C3处理器应该是i686兼容.前段时间在使用相同处理器的MiniItx主板上安装Ubuntu 6.10之后,我发现之前的声明并非100%正确.由于缺少C3处理器中i686设置的一些特定和可选指令,Ubuntu内核在启动时挂起.在使用i686优化时,GCC编译器默认使用i686集的C3实现中缺少的这些指令.在这种情况下,解决方案是使用i386编译版本的Ubuntu发行版.
Java应用程序的基本问题是通过克隆另一台PC的HD映像来安装在HD上的FC3发行版,这次是Intel P4.之后,分发需要一些黑客才能让它运行,比如用i386编译的版本替换一些软件包(例如内核).
问题是,工作一段时间后系统完全挂起而没有任何痕迹.我担心一些i686代码会留在系统中的某个地方,并且可以随时随机执行(例如从暂停模式或类似的东西中恢复后).
我的问题是:
file没有提供足够的信息.linux executable shared-libraries instruction-set cpu-architecture
什么是32位或64位机器?
这是处理器架构...... 32位机器可以在64位机器上同时读取和写入32位数据....
什么是32位机器可以访问的最大内存?
它是2^32=4Gb(4Gigabit = 0.5 GigaByte)
这意味着4Gb内存?
如果我对64位机器采用相同的方法,那么我可以使用16ExbiBytes的内存..这可能吗?
我的观念是对的吗?
LOOP(英特尔参考手动输入)递减ecx/rcx,然后如果非零则跳转.这很慢,但是英特尔不能廉价地把它变得很快吗? dec/jnz已经将宏观融合成 Sandybridge家族的一个 uop; 唯一的区别是设置标志.
loop关于各种微体系结构,来自Agner Fog的说明表:
Bulldozer-family/Ryzen:1 m-op(与宏观融合测试和分支相同,或者jecxz)
P4:4次(相同jecxz)
loope/ loopne).吞吐量= 4c(loop)或7c(loope/ne).loope/ loopne). 吞吐量=每5个循环一个,这是将循环计数器保留在内存中的瓶颈!jecxz只有2 uops,吞吐量与普通吞吐量相同jcc难道解码器不能像lea rcx, [rcx-1]/ 那样解码jrcxz吗?这将是3 uops.至少那是没有地址大小前缀的情况,否则它必须使用ecx和截断RIP,EIP如果跳转; 也许奇怪的地址大小选择控制减量的宽度解释了许多uops?
或者更好,只需将其解码为不设置标志的融合分支和分支? dec ecx …
在单核CPU上,每个进程都在OS中运行,并且CPU从一个进程跳转到另一个进程以最好地利用自身.进程可以有多个线程,在这种情况下,CPU在相应进程上运行时会运行这些线程.
现在,在多核CPU上:
核心是否在每个进程中一起运行,或者核心是否可以在一个特定时间点在不同进程中单独运行?例如,您有程序A运行两个线程.双核CPU可以运行这个程序的两个线程吗?如果我们使用像OpenMP这样的东西,我认为答案应该是肯定的.但是,虽然内核在这个OpenMP嵌入式进程中运行,但其中一个内核是否可以简单地切换到其他进程?
对于为单核创建的程序,当以100%运行时,为什么分配每个核的CPU利用率?(例如,80%和20%的双核CPU.在这种情况下,所有核心的利用率总是高达100%.)核心是否通过以某种方式运行每个进程的每个线程来帮助彼此帮助?
multithreading operating-system multicore cpu-architecture multiprocessing
我正在尝试分析和优化算法,我想了解缓存对各种处理器的具体影响.对于最近的Intel x86处理器(例如Q9300),很难找到有关缓存结构的详细信息.特别是,发布处理器规范的大多数网站(包括Intel.com)都不包含对L1缓存的任何引用.这是因为L1缓存不存在还是由于某种原因被认为不重要?是否有关于消除L1缓存的文章或讨论?
[编辑]在运行各种测试和诊断程序(主要是在下面的答案中讨论的那些)后,我得出结论,我的Q9300似乎有一个32K L1数据缓存.我仍然没有找到一个明确的解释,为什么这些信息很难得到.我目前的工作理论是,L1缓存的细节现在被英特尔视为商业机密.
cpu-architecture ×10
performance ×4
cpu ×2
cpu-cache ×2
intel ×2
linux ×2
32bit-64bit ×1
algorithm ×1
assembly ×1
concurrency ×1
cordova ×1
cpu-usage ×1
executable ×1
ios7 ×1
multicore ×1
optimization ×1
ram ×1
von-neumann ×1
x86 ×1
xcode5 ×1