查看: 1402|回复: 9
|
vb,vba,vbs,vb.net 问题集。(#11 关于vba)
[复制链接]
|
|
1. 请问下 vb 哪个function可以 return application run 时的memory usage and cpu usage.
(谢谢fxam的解答)
[ 本帖最后由 tensaix2j 于 5-11-2007 03:24 PM 编辑 ] |
|
|
|
|
|
|
|

楼主 |
发表于 31-10-2006 03:25 PM
|
显示全部楼层
2. 是不是只要某object没被任何variable reference 就会自动被GC清理呢?
比如
dim a as new object
dim b as new object
b=a
那原本被b refer的那个object是否还占memory.
(谢谢fxam的解答)
[ 本帖最后由 tensaix2j 于 17-4-2007 09:16 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 1-11-2006 09:36 PM
|
显示全部楼层
1. 请问下 vb 哪个function可以 return application run 时的memory usage and cpu usage.
- using System.Diagnostics.Process;
- namespace Test {
- class ProcessInfo {
- public void Show() {
- Process p = Process.GetCurrentProcess();
- Console.WriteLine( "Workingset = {0}", p.WorkingSet64 );
- Console.WriteLine( "Total Processor Time = {0}", p.TotalProcessorTime );
- }
- }
- }
复制代码
如果要像Task Manager那种CPU Usage(每隔一段時間用了多少%),就以新的TotalProcessorTime 减去旧的TotalProcessorTime,再算出其百分比。
2. 是不是只要某object没被任何variable reference 就会自动被GC清理呢?
比如
dim a as new object
dim b as new object
b=a
那原本被b refer的那个object是否还占memory.
GC清理記憶后,b refer的object不再占記憶。
[ 本帖最后由 fxam 于 1-11-2006 10:49 PM 编辑 ] |
|
|
|
|
|
|
|

楼主 |
发表于 2-11-2006 07:28 AM
|
显示全部楼层
原来是在process这个东西。这正是我要找的。 谢谢。。
第二题其实我是想问,什么时候gc才会去清理
(谢谢fxam的解答)
[ 本帖最后由 tensaix2j 于 17-4-2007 09:16 AM 编辑 ] |
|
|
|
|
|
|
|

楼主 |
发表于 2-11-2006 03:27 PM
|
显示全部楼层
3.
一般的random 都是uniform的。。
有什么方法可以generate 一个 normal distribution 的random?
(找到了.)
[ 本帖最后由 tensaix2j 于 17-4-2007 04:38 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 2-11-2006 09:46 PM
|
显示全部楼层
1) 自動,当GC覺得需要的時候,詳情我不懂。
2) 手動,叫GC.Collect()。 |
|
|
|
|
|
|
|

楼主 |
发表于 3-11-2006 01:05 AM
|
显示全部楼层
原帖由 fxam 于 2-11-2006 09:46 PM 发表
1) 自動,当GC覺得需要的時候,詳情我不懂。
2) 手動,叫GC.Collect()。
哦原来还可以手动的。。谢谢。 |
|
|
|
|
|
|
|

楼主 |
发表于 17-4-2007 09:25 AM
|
显示全部楼层
好久没来了。
5.
若我想启动一个thread..为何它不给我pass in parameter..
那要如何才能pass in parameter.??
example:
我有一个sub如下。。
Sub MyTrainingThread(ByVal threadID As Integer, _
ByRef mymodel As myModel, _
ByVal RowStartIndex As Integer, _
ByVal Rownum As Integer, _
Optional ByVal trainingFlag As Boolean = True)
....
....
....
RaiseEvent ThreadCompleted(threadID)
End sub
在main 那里。。
...
...
For i As Short = 0 To numOfThread
Dim aThread As New System.Threading.Thread(AddressOf MyTrainingThread(i, mymodel, 0, 10, training)) '这里不行
aThread.Start()
next i
...
...
若没parameter就可以。。
Dim aThread As New System.Threading.Thread(AddressOf MyTrainingThread)
(谢谢fxam的解答)
[ 本帖最后由 tensaix2j 于 22-4-2007 08:03 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 20-4-2007 11:57 AM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 22-4-2007 08:02 PM
|
显示全部楼层
只好用class咯。
谢谢fxam老大。。
 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|