Any efficient way to save table item(I/O) ?? [message #465951] |
Sun, 25 December 2005 21:24  |
Eclipse User |
|
|
|
I encountered a problem in efficieny while saving data from a tree to the
file.
The bottleneck is that there are about 12000 (600 * 20) entries in this huge
table.
And it causes lots of time in the following for loop!!
I wonder is there any way to avoid this problem?
Can I access the table line by line instead of iterating each table item?
for(int i = 0 ; i < items.length; i++}
for(int j = 0 ; j < = table.getColumnCount(); j++
content += items[i].getText(j) + " , " ;
Thanks
|
|
|
Re: Any efficient way to save table item(I/O) ?? [message #465952 is a reply to message #465951] |
Sun, 25 December 2005 22:04   |
Eclipse User |
|
|
|
I share some different methods to save a huge table. Here are my
experiments:
1. the slowest way, about 28 seconds
for(int i = 0 ; i < items.length; i++}
for(int j = 0 ; j < = table.getColumnCount(); j++
content += items[i].getText(j) + " , " ;
2. a little bit faster, about 20 seconds
for(int i = 0 ; i < items.length; i++){
StaticText o = (StaticText)items[i].getData();
content += o.getIndex() + " , ";
content += o.getObjID() + " , ";
content += o.getWidth() + " , ";;
content += o.getHeight() + " , ";;
content += o.getX() + " , ";;
content += o.getY() + " , ";;
content += o.getIsShow() + " , ";;
content += o.getIsFillBgColor() + " , ";;
content += o.getIsUseOwnBgColor() + " , ";;
.................
}
3. the fastest way, about 5 seconds
for(int i = 0 ; i < items.length; i++){
StaticText o = (StaticText)items[i].getData();
content += o.getIndex() + " , " + o.getObjID() + " , " + o.getWidth()
+ " , "
+ o.getHeight() + " , " + o.getX() + " , " + o.getY() + " , " +
o.getIsShow() + " , "
+ o.getIsFillBgColor() + " , " + o.getIsUseOwnBgColor() + " , " +
o.getIsUseOwnTextColor() + " , "
+ o.getIsUseOwnString() + " , " + o.getIsMultiLine() + " , " +
o.getIsAutoWordwrap() + " , " + o.getOwnBgColor() + " , "
+ o.getOwnTextColor() + " , " + o.getOwnFontSizeIdx() + " , " +
o.getHoriTextAlignStyleIdx() + " , "
+ o.getVertTextAlignStyleIdx() + " , " + o.getResID() + " , " +
o.getResID();
}
It is fastest if I use getData() and one line to get whole the item.
Is there any way faster? Users would feel uncomfortable to save a table with
4 more seconds. Thanks
"Johnson" <ljshuenn@realtek.com.tw>
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04404 seconds