VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

同樣的程式,為什麼會這麼慢

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
215001



註冊時間: 2003-06-11
文章: 389


第 1 樓

發表發表於: 星期五 一月 12, 2007 9:29 pm    文章主題: 同樣的程式,為什麼會這麼慢 引言回覆

程式碼如下:

xstr1=FILETOSTR("test.dbf")
xstr2=""
FOR xi=1 TO LEN(xstr1)
xstr2=xstr2+SUBSTR(xstr1,xi,1) && 實際的程式是做轉碼處理

IF MOD(xi,100)=0
WAIT WINDOW STR(xi) NOWAIT NOCLEAR
ENDIF
NEXT

當 test.dbf 的檔案大小是 7000 bytes 時,閃一下,就跑完了(顯示7000)
當 test.dbf 的檔案大小是 1 MB 時,執行時,卻是 100..200..300..400..500..600..700..800..900...............
為什麼會這麼慢,可以改善速度嗎?
回頂端
檢視會員個人資料 發送私人訊息
朱育興



註冊時間: 2003-08-25
文章: 661
來自: 台中市大里區

第 2 樓

發表發表於: 星期五 一月 12, 2007 10:13 pm    文章主題: 引言回覆

已在紅狐論壇回覆過了
_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
215001



註冊時間: 2003-06-11
文章: 389


第 3 樓

發表發表於: 星期六 一月 13, 2007 11:59 am    文章主題: 引言回覆

了解了,感謝朱兄
回頂端
檢視會員個人資料 發送私人訊息
shyhpyng



註冊時間: 2006-10-11
文章: 60
來自: 台南市

第 4 樓

發表發表於: 星期一 一月 15, 2007 8:31 am    文章主題: 引言回覆

朱育興 寫到:
已在紅狐論壇回覆過了


幫忙轉過來 FROM YSC5096

回復:同樣的程式,為什麼會這麼慢
那是 FILETOSTR( ) 函數傳回給變數後,由於變數內容的大小愈來愈大,可能影響到記憶體的效率 (您可以觀察記憶體的使用狀況),檔案愈大速度就會明顯的下降到難以忍受的狀況 (我曾受夠這狀況了)。

要把檔案當做一般文字檔來處理時,還是要用 FOPEN 低階函數的方式開啟,再利用迴圈去處理轉碼的問題,你會發現速度會大大的不同。

FILETOSTR( ) 是很好的函數,但要用對地方,祝好運!
回頂端
檢視會員個人資料 發送私人訊息
smartHP



註冊時間: 2005-05-17
文章: 10


第 5 樓

發表發表於: 星期日 二月 04, 2007 12:32 pm    文章主題: 引言回覆

這個問題我有遇過,這個問題是出在filetostr是有一個限制的變數長度。
當讀入的資料長度大過於變數長度時vfp就會做分批轉換處理。
當時我遇到這個問題時查了help才知道原來是有長度上的限制。
就用了fopen。效能差了好幾倍
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作