佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1402|回复: 9

vb,vba,vbs,vb.net 问题集。(#11 关于vba)

[复制链接]
发表于 31-10-2006 08:37 AM | 显示全部楼层 |阅读模式
1. 请问下 vb 哪个function可以 return application run 时的memory usage and cpu usage.


(谢谢fxam的解答)

[ 本帖最后由 tensaix2j 于 5-11-2007 03:24 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 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.

  1. using System.Diagnostics.Process;

  2. namespace Test {
  3.         class ProcessInfo {
  4.                 public void Show() {
  5.                         Process p = Process.GetCurrentProcess();
  6.                         Console.WriteLine( "Workingset = {0}", p.WorkingSet64 );
  7.                         Console.WriteLine( "Total Processor Time = {0}", p.TotalProcessorTime );
  8.                 }
  9.         }
  10. }
复制代码

如果要像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 | 显示全部楼层
第二题其实我是想问,什么时候gc才会去清理

1) 自動,当GC覺得需要的時候,詳情我不懂。
2) 手動,叫GC.Collect()。
回复

使用道具 举报

Follow Us
 楼主| 发表于 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 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 20-4-2007 11:57 AM | 显示全部楼层
如何pass parameter給thread ?

.NET 2.0的話:
Thread.Start(object): http://msdn2.microsoft.com/en-us/library/6x4c42hc(VS.80).aspx

若是.NET 1 ,或不喜歡以上的object(因為不type safe),可以將thread和parameter包裝在一個class里:
Creating Threads and Passing Data at Start Time: http://msdn2.microsoft.com/en-us/library/ts553s52(VS.80).aspx
回复

使用道具 举报

 楼主| 发表于 22-4-2007 08:02 PM | 显示全部楼层
只好用class咯。
谢谢fxam老大。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 30-8-2025 10:34 AM , Processed in 0.133849 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表