Click here to Skip to main content
14,490,059 members

Free Tools

This forum is for discussing and recommending Free tools for software development. Please post direct links to tools, and not just links to pages that review or list tools.No shareware and no commercial products allowed. Please report spammers by voting to remove their messages and reporting their accounts.

 
GeneralGit Pin
Mehdi Gholam6-May-12 9:12
MemberMehdi Gholam6-May-12 9:12 
GeneralA very beautiful free font (with 46 ligatures, and 457 glyphs !) from designer Pedro Arilla: "Valentina" Pin
BillWoodruff3-May-12 16:06
mveBillWoodruff3-May-12 16:06 
GeneralFree tool for translating your CSS in "British flavour" English spelling into "American flavor" Pin
BillWoodruff3-May-12 16:03
mveBillWoodruff3-May-12 16:03 
GeneralRe: Free tool for translating your CSS in "British flavour" English spelling into "American flavor" Pin
R. Giskard Reventlov4-May-12 8:49
MemberR. Giskard Reventlov4-May-12 8:49 
General40+ great open source apps and games Pin
Benaiah Mischenko18-Apr-12 9:08
MemberBenaiah Mischenko18-Apr-12 9:08 
GeneralFor those writing WMI code Pin
Eddy Vluggen15-Apr-12 3:41
professionalEddy Vluggen15-Apr-12 3:41 
GeneralHaving USB Problems? Pin
Henry Minute12-Apr-12 22:39
MemberHenry Minute12-Apr-12 22:39 
GeneralA new free open-source external sorter written in C Pin
Sanmayce11-Apr-12 2:42
MemberSanmayce11-Apr-12 2:42 
Last night I made a sort-showdown package Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT.zip 4.75 MB (4,981,422 bytes), these are notes which I wanted to share with all C programmers:

Back in 1992 RPSORT was a phenom, just wanted to see how my experimental console sorter Sandokan (written in C) behaves among Windows sort, ported GNU sort and the 16bit Bob Pirko's excellent tool (written in assembler).

Note 1: The package can be downloaded freely at: www.sanmayce.com/Downloads/Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT.zip
Note 2: This console-sort-test needs Windows 32bit because many 64bit Windowses do not support 16bit code.
Note 3: You may use/start the shortcut 'KAZE prompt.lnk' - it offers easy-to-the-eyes prompt i.e. font/color/size.
Note 4: Sources of all (except Windows' one) participants are given.
Note 5: Sandokan executables 32bit/64bit are included, Intel 12.1 and Microsoft VS2010 compilers were used, yes 4 EXEs in total.

Just run the batch file: Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT.bat

To sort (on my laptop T7500 2200MHz 4MB L2 4GB DDR2, Windows XP 32bit) first 3 million (129 bytes long strings) Knight-Tours took 33s/39s/94s/21s respectively for Sandokan/Windows-sort/GNU-sort/RPSORT.

Robert Pirko still rules... Hats down I guess.
Can anyone share with us a similar High-Performance [not] free, [not] open-source (for Windows to be more specific) console sorter?

Enjoy!
Kaze, 2012-Apr-11

Resultant log on my laptop T7500 2200MHz 4MB L2 4GB DDR2, Windows XP 32bit:
E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>dir/og/on
 Volume in drive E is SSD_Sanmayce
 Volume Serial Number is 4C99-82D8

 Directory of E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT

04/11/2012  04:28 AM    <DIR>          .
04/11/2012  04:28 AM    <DIR>          ..
03/27/2012  08:08 AM             1,632 KAZE prompt.lnk
04/09/2012  12:03 AM            24,490 Knight-tour_r8dump.c
04/11/2012  04:20 AM            73,728 Knight-tour_r8dump_Microsoft_V16_32bit_Ox.exe
03/16/2004  08:37 PM           898,048 libiconv2.dll
10/09/2004  05:25 PM           101,888 libintl3.dll
04/11/2012  05:05 AM             8,313 README.TXT
12/15/1992  04:41 PM            18,597 rpsort.com
02/04/2009  03:42 AM            89,116 RPSRT102.ZIP
04/11/2012  01:44 AM           552,448 Sandokan_Logo.doc
04/11/2012  01:47 AM           300,367 Sandokan_Logo.pdf
04/11/2012  04:01 AM         2,316,781 Sandokan_Logo.png
04/11/2012  03:26 AM           145,079 Sandokan_QuickSortExternal_4+GB.c
04/11/2012  04:23 AM            91,648 Sandokan_QuickSortExternal_4+GB_Microsoft_V16_32bit_Ox.exe
04/11/2012  04:27 AM         1,076,165 Sandokan_r3-++.zip
04/11/2012  04:29 AM               769 Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT.bat
10/22/2007  02:47 PM             9,458 sha1sum.c
04/11/2012  04:20 AM            62,464 sha1sum_Microsoft_V16_32bit_Ox.exe
04/08/2005  09:15 PM            70,172 sort_GNU_530.c
04/20/2005  07:41 PM            96,256 sort_GNU_530.exe
07/29/2011  10:12 AM           140,095 sort_GNU_813.c
03/27/2012  08:08 AM             4,096 Timer.exe
              21 File(s)      6,081,610 bytes
               2 Dir(s)  24,177,815,552 bytes free

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>type Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT.bat
@echo This test takes some 9 minutes to complete...
@ver
Knight-tour_r8dump_Microsoft_V16_32bit_Ox.exe a8 3000000>KT3million.txt
dir kt*
timer Sandokan_QuickSortExternal_4+GB_Microsoft_V16_32bit_Ox.exe KT3million.txt /fast /descend
timer sort /R /T c: KT3million.txt /O KT3million.txt.XP
timer sort /M 1048576 /R /T c: KT3million.txt /O KT3million.txt.XP
timer sort_GNU_530 -oKT3million.txt.GNU -Tc: -r KT3million.txt
timer sort_GNU_530 -oKT3million.txt.GNU -Tc: -r -S1024M KT3million.txt
timer rpsort.com KT3mil~1.txt KT3mil~1.rp /A /R
sha1sum_Microsoft_V16_32bit_Ox.exe "QuickSortExternal_4+GB.txt"
sha1sum_Microsoft_V16_32bit_Ox.exe KT3million.txt.XP
sha1sum_Microsoft_V16_32bit_Ox.exe KT3million.txt.GNU
sha1sum_Microsoft_V16_32bit_Ox.exe "KT3MIL~1.RP"
E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT.bat
This test takes some 9 minutes to complete...

Microsoft Windows XP [Version 5.1.2600]

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>Knight-tour_r8dump_Microsoft_V16_32bit_Ox.exe a8 3000000 1>KT3million.txt

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>dir kt*
 Volume in drive E is SSD_Sanmayce
 Volume Serial Number is 4C99-82D8

 Directory of E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT

04/11/2012  04:32 AM       390,000,000 KT3million.txt
               1 File(s)    390,000,000 bytes
               0 Dir(s)  24,000,847,872 bytes free

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>timer Sandokan_QuickSortExternal_4+GB_Microsoft_V16_32bit_Ox.exe KT3million.txt /fast /descend
Timer 9.01 : Igor Pavlov : Public domain : 2009-05-31
Sandokan_QuickSortExternal_4+GB r.3-++, written by Kaze, using Bill Durango's Quicksort source.
Size of input file: 390,000,000
Counting lines ...
Lines encountered: 3,000,000
Longest line (including CR if present): 129
Allocated memory for pointers-to-lines in MB: 22
Assigning pointers ...
sizeof(int), sizeof(void*): 4, 4
Trying to allocate memory for the file itself in MB: 371 ... OK! Get on with fast internal accesses.
Uploading ...
Sorting 3,000,000 Pointers ...
Pass #1: Quicksort commenced ...
- RightEnd: 000,001,500,225; NumberOfSplittings: 0,000,456,671; Done: 100% ...
Pass #2: Insertionsort commenced ...
\ i: 000,003,000,000 ...
NumberOfComparisons: 71,492,936
The time to sort 3,000,000 items via Quicksort+Insertionsort was 23,953 clocks.
Dumping the sorted data ...
Dumped 3,000,000 lines.
OK! Incoming and resultant file's sizes match.
Dump time: 5,047 clocks.
Total time: 33,953 clocks.
Performance: 11,201 KB/s.
Done successfully.

Kernel Time  =     1.437 =    4%
User Time    =    27.296 =   80%
Process Time =    28.734 =   84%
Global Time  =    33.993 =  100%

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>timer sort /R /T c: KT3million.txt /O KT3million.txt.XP
Timer 9.01 : Igor Pavlov : Public domain : 2009-05-31

Kernel Time  =     0.515 =    1%
User Time    =    36.656 =   91%
Process Time =    37.171 =   92%
Global Time  =    39.985 =  100%

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>timer sort /M 1048576 /R /T c: KT3million.txt /O KT3million.txt.XP
Timer 9.01 : Igor Pavlov : Public domain : 2009-05-31

Kernel Time  =     0.453 =    1%
User Time    =    36.796 =   93%
Process Time =    37.250 =   94%
Global Time  =    39.251 =  100%

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>timer sort_GNU_530 -oKT3million.txt.GNU -Tc: -r KT3million.txt
Timer 9.01 : Igor Pavlov : Public domain : 2009-05-31

Kernel Time  =     1.984 =    2%
User Time    =    92.218 =   94%
Process Time =    94.203 =   97%
Global Time  =    97.089 =  100%

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>timer sort_GNU_530 -oKT3million.txt.GNU -Tc: -r -S1024M KT3million.txt
Timer 9.01 : Igor Pavlov : Public domain : 2009-05-31

Kernel Time  =     1.562 =    1%
User Time    =    92.515 =   97%
Process Time =    94.078 =   99%
Global Time  =    94.533 =  100%

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>timer rpsort.com KT3mil~1.txt KT3mil~1.rp /A /R
Timer 9.01 : Igor Pavlov : Public domain : 2009-05-31

RPSORT v1.02  Dec. 15, 1992, Copyright 1991 by Bob Pirko, All rights reserved

Sort successfully completed.
Processing Took 00:00:20.32

Kernel Time  =     0.000 =    0%
User Time    =     0.000 =    0%
Process Time =     0.000 =    0%
Global Time  =    21.069 =  100%

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>sha1sum_Microsoft_V16_32bit_Ox.exe "QuickSortExternal_4+GB.txt"
a053faa74ffb6cad41e61e273a1a0e0049cb25e7  QuickSortExternal_4+GB.txt

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>sha1sum_Microsoft_V16_32bit_Ox.exe KT3million.txt.XP
a053faa74ffb6cad41e61e273a1a0e0049cb25e7  KT3million.txt.XP

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>sha1sum_Microsoft_V16_32bit_Ox.exe KT3million.txt.GNU
a053faa74ffb6cad41e61e273a1a0e0049cb25e7  KT3million.txt.GNU

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>sha1sum_Microsoft_V16_32bit_Ox.exe "KT3MIL~1.RP"
a053faa74ffb6cad41e61e273a1a0e0049cb25e7  KT3MIL~1.RP

E:\Sandokan_r3-++\Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT>


Resultant log on laptop Pentium Dual-Core E6500 2.93GHz, 2048 kB L2-Cache, 4GB DDR2, Fedora 16 x86_64:
The script Runtest.sh below:
uname -a
echo
gcc --version
echo
sort --version
echo
./Knight-tour_r8dump a8 3000000 > KT3million.txt
time ./Sandokan_QuickSortExternal_4+GB KT3million.txt /fast /descend
time sort -r KT3million.txt -o KT3million.txt.GNU
./sha1sum QuickSortExternal_4+GB.txt
./sha1sum KT3million.txt.GNU
[Kaze@Sandokan Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT]$ sh Runtest.sh
Linux swan.sineva.net 3.3.0-4.fc16.x86_64 #1 SMP Tue Mar 20 18:05:40 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2)
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

sort (GNU coreutils) 8.12
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Mike Haertel and Paul Eggert.

Sandokan_QuickSortExternal_4+GB r.3-++, written by Kaze, using Bill Durango's Quicksort source.
Size of input file: 387,000,000
Counting lines ...
Lines encountered: 3,000,000
Longest line (including CR if present): 128
Allocated memory for pointers-to-lines in MB: 22
Assigning pointers ...
sizeof(int), sizeof(void*): 4, 8
Trying to allocate memory for the file itself in MB: 369 ... OK! Get on with fast internal accesses.
Uploading ...
Sorting 3,000,000 Pointers ...
Pass #1: Quicksort commenced ...
- RightEnd: 000,001,500,225; NumberOfSplittings: 0,000,456,671; Done: 100% ...
Pass #2: Insertionsort commenced ...
\ i: 000,003,000,000 ...
NumberOfComparisons: 71,492,936
The time to sort 3,000,000 items via Quicksort+Insertionsort was 22,060,000 clocks.
Dumping the sorted data ...
Dumped 3,000,000 lines.
OK! Incoming and resultant file's sizes match.
Dump time: 1,050,000 clocks.
Total time: 25,340,000 clocks.
Performance: 14,535 KB/s.
Done successfully.

real	0m25.975s
user	0m24.002s
sys	0m1.353s

real	1m0.220s
user	1m34.929s
sys	0m2.532s
b647ce39fcb7459f9692a479ce736ae36dab87af  QuickSortExternal_4+GB.txt
b647ce39fcb7459f9692a479ce736ae36dab87af  KT3million.txt.GNU
[Kaze@Sandokan Sandokan_vs_Windows-sort_vs_GNU-sort_vs_DOS-RPSORT]$ 


Despite the fact Sandokan r.3-++ being an initial release it behaves well on short files, for some reason Fedora 16 sort is too slow, since I am not into Linux perhaps there is a faster way to run it.
Get down get down get down get it on show love and give it up
What are you waiting on?

GeneralRe: A new free open-source external sorter written in C Pin
BillWoodruff3-May-12 15:50
mveBillWoodruff3-May-12 15:50 
GeneralRe: A new free open-source external sorter written in C Pin
Sanmayce4-May-12 8:29
MemberSanmayce4-May-12 8:29 
GeneralRe: A new free open-source external sorter written in C Pin
BillWoodruff5-May-12 15:17
mveBillWoodruff5-May-12 15:17 
GeneralRe: A new free open-source external sorter written in C Pin
Member 905868031-May-12 22:55
MemberMember 905868031-May-12 22:55 
Generalsource of well-done graphics (PhotoShop .psd files) useful for ui-design, web-site design, blogs, etc.: icons, themes, etc. Pin
BillWoodruff7-Apr-12 16:00
mveBillWoodruff7-Apr-12 16:00 
GeneralRe: source of well-done graphics (PhotoShop .psd files) useful for ui-design, web-site design, blogs, etc.: icons, themes, etc. Pin
PaperTape23-Apr-12 23:47
professionalPaperTape23-Apr-12 23:47 
GeneralRe: source of well-done graphics (PhotoShop .psd files) useful for ui-design, web-site design, blogs, etc.: icons, themes, etc. Pin
OriginalGriff24-Apr-12 1:02
mveOriginalGriff24-Apr-12 1:02 
GeneralRe: source of well-done graphics (PhotoShop .psd files) useful for ui-design, web-site design, blogs, etc.: icons, themes, etc. Pin
PaperTape24-Apr-12 4:29
professionalPaperTape24-Apr-12 4:29 
GeneralFree GAC Explorer Tool Pin
Saurav Maity29-Mar-12 0:41
MemberSaurav Maity29-Mar-12 0:41 
GeneralRe: Free GAC Explorer Tool Pin
Reza Ahmadi4-Apr-12 19:53
MemberReza Ahmadi4-Apr-12 19:53 
GeneralKeePass password safe Pin
Peter_in_278021-Mar-12 19:56
professionalPeter_in_278021-Mar-12 19:56 
GeneralRe: KeePass password safe Pin
Corporal Agarn26-Mar-12 5:04
professionalCorporal Agarn26-Mar-12 5:04 
GeneralRe: KeePass password safe Pin
Albert Holguin14-May-12 3:44
professionalAlbert Holguin14-May-12 3:44 
SuggestionFree UML Modeling Tool ... Pin
Wonde Tadesse16-Mar-12 12:07
professionalWonde Tadesse16-Mar-12 12:07 
GeneralRe: Free UML Modeling Tool ... Pin
Emre Ataseven9-Jun-14 22:36
professionalEmre Ataseven9-Jun-14 22:36 
QuestionAny tool to check UI controls alignment? Pin
PravinSingh15-Mar-12 22:08
MemberPravinSingh15-Mar-12 22:08 
SuggestionRe: Any tool to check UI controls alignment? Pin
Wonde Tadesse16-Mar-12 12:00
professionalWonde Tadesse16-Mar-12 12:00 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.