作者i1537 ()
看板Visual_Basic
标题[.NET] VB.net 越吃越多的记忆体...
时间Tue Jul 27 18:56:38 2010
请输入专案类型(网站专案或者应用程式专案):应用程式专案
各位好
有个会吃记忆体的问题想跟各位请教
程式码如下:
==================================START========================================
Imports System.Data
Imports System.Data.OleDb
Public Class Form1
Dim conn As New OleDbConnection
Dim insertstring As String
Dim cmd As New OleDbCommand
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
conn.ConnectionString = "Provider=MSDAORA.1;Data Source=myserver;Persist Security Info=True;Password=pwd;User ID=user"
conn.Open()
Dim str1 As String = "Select * from Table01"
Dim adapter1 As OleDbDataAdapter = New OleDbDataAdapter(str1, conn)
Dim dataset1 As DataSet = New DataSet()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'1s
TextBox1.Text = Now.Hour & ":" & Now.Minute & ":" & Now.Second
cmd.CommandText = "Insert Into Table01(Time,DATA1)Values( '" & TextBox1.Text & "' , 100 )"
cmd.Connection = conn
cmd.ExecuteNonQuery()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Timer1.Enabled = True Then
Timer1.Enabled = False
Else
Timer1.Enabled = True
End If
End Sub
End Class
===================================END=========================================
目前程式可以正常执行
但是 在工作管理员中
会发现整个程式不断在吃记忆体
会慢慢的增加
请问我有写错吗
或是 有什方法可以解决此问题
我试过 dispose 无法释放资源
谢谢
PS: VB.net 2010 + ORACLE 10g
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.205.238
1F:推 jimmy701010:有无限回圈的程式在跑吗 07/27 18:59
2F:→ i1537:NO, 完整的 CODE 如上 谢谢 07/27 19:39
3F:→ nobody1:conn开了好像没关? 07/27 22:03
4F:→ i1537:我每秒都在写入 不断的开关 我怕会影响写入速度 07/27 22:05
5F:→ i1537:因为我同时有 50多个表在写入 写入资料超过 1500个DATA/sec 07/27 22:05
6F:→ i1537:请问是否有针对 Dim cmd As New OleDbCommand 关闭的方式? 07/27 22:07
7F:→ nobody1:关上是种习惯~ 07/27 23:14
8F:推 horngsh:建议connection obj OPEN()一次就好...全部跑完再关掉. 07/28 13:51
9F:→ i1537:H大 愿闻其详 谢谢 07/28 16:24
10F:推 horngsh:你的Timer1 Interval属性设多少? 07/28 18:07
11F:推 horngsh:应该是你的Timer1 Interval设太小.导致Insert太频繁. 07/28 18:09
12F:→ i1537:1秒 <= 没设错 就是一秒写一堆资料进DB 07/28 21:56
13F:推 horngsh:Interval单位是毫秒, 所以Interval设1000才是1秒. 07/28 22:23
14F:→ i1537:我知道, 我是在属性中设定不是在CODE中设定 07/28 23:14
15F:→ i1537:且 吃记忆体的问题是出在 没有释放 非秒数所影响 谢谢 07/28 23:15
16F:推 DearKurt:不是完整code吧 adapter1没用到 你如何写入50表也看不出 07/29 01:48
17F:→ i1537:D大 因为不用将DB内容显示在画面上 故省略了 adapter 07/29 08:58
18F:→ i1537:在 Timer1_Tick 中 是一个完整的 TABLE , 50表只是重复 07/29 09:00
19F:→ i1537:且 一个表都解不掉 如何解 50表 07/29 09:00
20F:→ nobody1:你conn不关 比较像是一直喝水又不给人喘气 07/29 11:14
21F:→ nobody1:sql有背景处理 access有吗? 小弟不知道有没有咧 07/29 11:15
22F:→ i1537:N大 说到DB有背景处理 我发现每秒记录的资料会跳 但不会LOSE 07/29 11:57