| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3243 人关注过本帖, 1 人收藏
标题:CSV合并的问题
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
速度如何了?

授人以渔,不授人以鱼。
2015-03-12 12:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用wmf2014在2015-3-12 07:31:59的发言:

各文件行数不同,简单叠加应该不行吧,要补“,”的,否则会错位。比如,最后一个文件是第1000个文件,它比前面的数据多一行,就应该要在前面的数据里补1000个逗号的,我看T版主文件合并部分好像没有这类处理,不知道是怎么解决的。

參看2-3頁之間的對話

授人以渔,不授人以鱼。
2015-03-12 12:53
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
回复 61楼 TonyDeng
當然是只有VB應該有的速度

不要選我當版主
2015-03-12 13:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我後面的C解決實現,理論上是最快的,因爲預先申請了(可按需調整)100M的堆空間爲拼接結果數據所用,而不是像C#方案那樣用動態容器有調整容量的開銷(其實也可以事先申請足夠的空間避免調整),所以執行起來,前者比後者快一點。但這種方案的關鍵處也正在這裏,在低內存機器上,未必可以得到100M的堆空間,那時就需要用磁盤文件了,變得由外設速度決定。

記得我曾經就這個問題,在你以前發過的帖子中提示,說應在內存中把數據整理好再寫盤,你的回應是問題沒那麽簡單。

授人以渔,不授人以鱼。
2015-03-12 13:24
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
以下是引用TonyDeng在2015-3-12 13:24:49的发言:

我後面的C解決實現,理論上是最快的,因爲預先申請了(可按需調整)100M的堆空間爲拼接結果數據所用,而不是像C#方案那樣用動態容器有調整容量的開銷(其實也可以事先申請足夠的空間避免調整),所以執行起來,前者比後者快一點。但這種方案的關鍵處也正在這裏,在低內存機器上,未必可以得到100M的堆空間,那時就需要用磁盤文件了,變得由外設速度決定。

記得我曾經就這個問題,在你以前發過的帖子中提示,說應在內存中把數據整理好再寫盤,你的回應是問題沒那麽簡單。


是阿,預先申請一定會比動態調整快,但是預先申請常遇到,不是不夠就是太多.(C要是慢我就不會用它了)

雖然我不太記得了,不過我的回應應該是針對整個程式,而不只是對單一函式,我之前已經有資料覆蓋的問題.

但如果針對目前合併CSV的部分來說,我確實是已經先在內存整理好再寫出,所以合併時才能少掉很多額外的考慮和處理.
直接暴力合併就能OK的程度.

不過話說回來使用者開個幾GB的二進位檔,又要求要能瞬間完成的話,那只好直接翻桌了.

不要選我當版主
2015-03-12 15:03
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
數據庫對磁盤文件數據的處理是最快和最靈活的。

授人以渔,不授人以鱼。
2015-03-12 15:05
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
就C內存處理的模式來説,其實用fwrite()寫更快,現在用fprintf()是慢的。

授人以渔,不授人以鱼。
2015-03-12 15:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用wube在2015-3-12 15:03:00的发言:

 

不過話說回來使用者開個幾GB的二進位檔,又要求要能瞬間完成的話,那只好直接翻桌了.

投資固態硬盤咯。

授人以渔,不授人以鱼。
2015-03-12 15:13
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
以下是引用TonyDeng在2015-3-12 15:13:47的发言:


投資固態硬盤咯。



試過最快的是用RAMDisk做.那才真是瞬間完成.

不要選我當版主
2015-03-12 15:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
其實我覺得有點怪,你這些數據,不合併比合併更好用才對。

授人以渔,不授人以鱼。
2015-03-12 15:38
快速回复:CSV合并的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016408 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved