作者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