标签: cpu

装配CPU频率测量算法

用于测量处理器频率的常用算法有哪些?

cpu assembly system timer

15
推荐指数
3
解决办法
9702
查看次数

现代CPU的每个刻度的缓存带宽

现代CPU的缓存访问速度是多少?Intel P4,Core2,Corei7,AMD每个处理器时钟周期内可以从内存中读取或写入多少字节?

请回答理论(ld/sd单位的宽度及其uOPs/tick的吞吐量)和实际数字(甚至是memcpy速度测试,或STREAM基准测试),如果有的话.

PS是问题,与汇编程序中的最大加载/存储指令率有关.可以有理论加载速率(所有每个Tick的指令都是最宽的负载),但是处理器只能给出部分这样的,一个实际的加载限制.

cpu performance caching cpu-architecture cpu-cache

15
推荐指数
2
解决办法
7843
查看次数

AppDomain的CPU和内存上限

我想在appdomain中托管一个exe并为其分配CPU和内存上限,以便它不会使用超过指定的处理能力.这可能吗?怎么做?

memory cpu appdomain

15
推荐指数
1
解决办法
2366
查看次数

什么是陷阱?

处理器数据表中列出了许多不同类型的陷阱,例如BusFault,MemManage Fault,Usage Fault和Address Error.

他们的目的是什么?如何在故障处理中使用它们?

embedded cpu microcontroller processor hardware-traps

15
推荐指数
3
解决办法
9586
查看次数

Java限制资源使用

有没有办法限制java使用的核心数量?

同样,是否可以限制使用该核心的数量?

java cpu cpu-usage

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

virt_to_phys和Linux内核中CPU的MMU之间有什么关系?

我正在阅读有关Linux内存管理的内容.我知道

Linux内核负责创建和维护页表,但使用CPU的内存管理单元(MMU)将进程的虚拟内存访问转换为相应的物理内存访问.

但是,我也知道内核可以使用它的一些功能来管理内存,例如virt_to_phys(),virt_to_page(),__pa(),...

例:

static inline unsigned long virt_to_phys(volatile void *address)
{
    return __pa(address);
}
Run Code Online (Sandbox Code Playgroud)

用于将虚拟地址转换为物理地址.

我对他们很困惑.请帮我们看一下MMU翻译与内核翻译之间的关系并区分它们?

linux memory cpu cpu-architecture linux-kernel

15
推荐指数
1
解决办法
2977
查看次数

如何在Delphi 7中禁用CPU窗口

当在Delphi 7中执行程序时,CPU窗口有时会弹出,然后逐步执行该指令.我发现这是一个烦恼,因为我只希望步骤Pascal Code.

有谁知道如何禁用此CPU弹出窗口?

如果这个窗口永远不显示,我不会后悔.

它在Delphi 5上没有发生,这是我之前用于Delphi的IDE.我主要使用Step-Over按钮,只是在想要了解使用过的(pascal)单元的详细信息时才进入.

ide delphi debugging cpu window

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

如何在Java中以60 fps限制帧速率?

我正在写一个简单的游戏,我想以60 fps的速度限制我的帧速率,而不是让循环吃掉我的cpu.我该怎么做?

java cpu frame-rate

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

为什么这个Java代码不使用所有CPU内核?

附加的简单Java代码应该在使用正确的参数启动时加载所有可用的cpu核心.例如,你开始使用它

java VMTest 8 int 0

它将启动8个线程,除了循环并将2添加到整数之外什么都不做.在寄存器中运行的东西,甚至不分配新的内存.

我们现在面临的问题是,当运行这个简单的程序(当然有24个线程)时,我们没有加载24核机器(AMD 2个插槽,每个12个核心).类似的事情发生在每12个线程或更小的机器的2个程序.

所以我们怀疑JVM(Linux x64上的Sun JDK 6u20)不能很好地扩展.

有没有人看到类似的东西或有能力运行它并报告它是否在他/她的机器上运行良好(> =仅8个核心)?想法?

我在带有8个内核的Amazon EC2上尝试过这个,但是虚拟机似乎与真正的盒子不同,因此加载的行为非常奇怪.

package com.test;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

public class VMTest
{
    public class IntTask implements Runnable 
    {
        @Override
        public void run()
        {
            int i = 0;

            while (true)
            {
                i = i + 2;
            }
        }
    }
    public class StringTask implements Runnable 
    {
        @Override
        public void run()
        {
            int i = 0;

            String s;
            while (true)
            {
                i++;
                s = …
Run Code Online (Sandbox Code Playgroud)

java cpu scaling scalability multicore

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

Java内存模型 - volatile和x86

我试图理解java volatile的内在函数及其语义,以及它对底层架构及其指令的转换.如果我们考虑以下博客和资源

为volatile生成的fences,在fence上读取/写入volatileStack overflow问题时会生成什么

这是我收集的内容:

  • volatile read在它之后插入loadStore/LoadLoad障碍(x86上的LFENCE指令)
  • 它可以防止随后的写入/加载重新排序负载
  • 它应该保证加载由其他线程修改的全局状态,即在LFENCE之后,由其他线程完成的状态修改对其CPU上的当前线程是可见的.

我正在努力理解的是:Java不会在x86上发出LFENCE,即读取volatile不会导致LFENCE ....我知道x86的内存排序会阻止lods/stored的负载重写,所以第二个要点是照顾.但是,我假设为了使该状态可以被该线程看到,应该发出LFENCE指令以保证在执行栅栏后的下一条指令之前所有LOAD缓冲区都被耗尽(根据英特尔手册).我知道x86上有cahce coherence协议,但是volatile读取仍然会消耗缓冲区中的任何LOAD,不是吗?

java cpu multithreading volatile java-memory-model

14
推荐指数
1
解决办法
317
查看次数