在我的桌面上,我有一个小小部件告诉我当前的CPU使用情况.它还显示了我的两个核心的使用情况.
我总是想知道,CPU如何计算其处理能力的使用量?此外,如果CPU挂起来进行一些强烈的计算,它怎么能(或任何处理此活动)检查使用情况,而不会挂断?
注意:我使用Python 2.7和pySerial进行串行通信.
我发现这篇文章列出了两种方式:http://www.zaber.com/wiki/Software/Python#Displaying_a_list_of_available_serial_ports
此方法适用于Windows和Linux,但有时会错过Linux上的虚拟端口:
import serial
def scan():
# scan for available ports. return a list of tuples (num, name)
available = []
for i in range(256):
try:
s = serial.Serial(i)
available.append( (i, s.portstr))
s.close()
except serial.SerialException:
pass
return available
print "Found ports:"
for n,s in scan(): print "(%d) %s" % (n,s)
Run Code Online (Sandbox Code Playgroud)
这个只适用于Linux,但包含虚拟端口:
import serial, glob
def scan():
# scan for available ports. return a list of device names.
return glob.glob('/dev/ttyS*') + glob.glob('/dev/ttyUSB*')
print "Found ports:" …
Run Code Online (Sandbox Code Playgroud) 我听说在函数顶部定义变量是一种很好的技术,因此最终不会出现可变的提升问题.这个:
// Beginning of file
function something(){
var a, b, c = 1, d, e;
// Do something
}
// End of file
Run Code Online (Sandbox Code Playgroud)
是一个很好的例子(当然不包括坏的变量名).
我的问题是:这总是最好的方法吗?如果你正在使用很多变量怎么办?他们真的应该只是在一条线上吗?
我有一个Arduino Uno(很棒的小装置!).它有两个中断; 我们称他们为0和1.我使用attachInterrupt()
:http://www.arduino.cc/en/Reference/AttachInterrupt将一个处理程序连接到中断0,另一个处理程序用于中断1 .
中断0被触发,它调用它的处理程序,它执行一些数字运算.如果在触发中断1时中断0的处理程序仍在执行,会发生什么?
中断1中断中断0,还是中断1等待,直到中断0的处理程序执行完毕?
请注意,这个问题与Arduino有关.
embedded microcontroller arduino interrupt interrupt-handling
基本上,我正在使用这个:
var data = input.AsParallel();
List<String> output = new List<String>();
Parallel.ForEach<String>(data, line => {
String outputLine = "";
// ** Do something with "line" and store result in "outputLine" **
// Additionally, there are some this.Invoke statements for updating UI
output.Add(outputLine);
});
Run Code Online (Sandbox Code Playgroud)
输入是一个List<String>
对象.该ForEach()
语句对每个值进行一些处理,更新UI,并将结果添加到output
List
.这有什么本质上的错误吗?
笔记:
更新:
根据我得到的反馈,我lock
在output.Add
声明中添加了一个手册,以及UI更新代码.
我正在开发一个托管在Google Code上的小项目,使用SVN进行源代码管理.这是我第一次使用源代码控制,我对实际应该提交到存储库的内容感到有点困惑.我的项目很简单:一个用C#编写的类库项目.我写的实际代码是单个文件.
我的问题是:我应该提交整个项目(包括调试,发布,属性等目录)还是我的主.cs文件?
(注意自我:不要使用Subversion战斗一段时间后不能复位库),它看起来像我终于有工作与目录奠定了正常.
用于计算简单移动平均值的最快库/算法是什么?我写了自己的,但是在33万项十进制数据集上花了太长时间.
这是我的方法的代码:
public decimal MA_Simple(int period, int ii) {
if (period != 0 && ii > period) {
//stp.Start();
decimal summ = 0;
for (int i = ii; i > ii - period; i--) {
summ = summ + Data.Close[i];
}
summ = summ / period;
//stp.Stop();
//if (ii == 1500) System.Windows.Forms.MessageBox.Show((stp.ElapsedTicks * 1000.0) / Stopwatch.Frequency + " ms");
return summ;
} else return -1;
}
Run Code Online (Sandbox Code Playgroud)
这Data.Close[]
是一个固定大小(1 000 000)的十进制数组.
我在使用不同文件中的关系分隔表时遇到问题.我希望下面的表格在三个单独的文件中,并在第三方页面中导入TableA,但我无法管理加载顺序.
在大多数情况下,我收到以下错误.
sqlalchemy.exc. InvalidRequestError:初始化映射器Mapper | TableA | tablea时,表达式"TableB"无法找到名称("未定义名称'TableB'").如果这是类名,请考虑在定义了两个依赖类之后将此关系()添加到类中.
class TableA(Base):
__tablename__ = "tablea"
id = Column(Integer, primary_key=True)
name = Column(String)
tableB = relationship("TableB", secondary = TableC.__table__)
class TableB(Base):
__tablename__ = "tableb"
id = Column(Integer, primary_key=True)
name = Column(String)
class TableC(Base):
__tablename__ = "tableab"
tableAId = Column("table_a_id", Integer, ForeignKey("TableA.id"), primary_key=True)
tableBId = Column("table_b_id", Integer, ForeignKey("TableB.id"), primary_key=True)
Run Code Online (Sandbox Code Playgroud) yield
当我从深度的C#中看到一个示例章节时,我正在阅读关键字:http://csharpindepth.com/Articles/Chapter6/IteratorBlockImplementation.aspx.
第一个代码块使用yield
关键字来创建一个简单的迭代器.但是,第二个代码块在编译器使用它之后显示了这段代码.除此之外,它还将yield
声明分解为状态机.
在页面上可以看到编译器修改的其他几个代码示例.
我的问题是:作者是否真的能够在编译后访问代码,或者他是否推断出它会是什么样子?
c# ×5
algorithm ×2
python ×2
.net ×1
arduino ×1
asynchronous ×1
c#-5.0 ×1
cpu ×1
cpu-usage ×1
embedded ×1
financial ×1
interrupt ×1
javascript ×1
multicore ×1
optimization ×1
performance ×1
pyserial ×1
python-2.7 ×1
relationship ×1
serial-port ×1
sqlalchemy ×1
svn ×1
variables ×1
yield ×1