I’ve repeated the tests using FILE_FLAG_NO_BUFFERING and all speeds are now linear.
The conditions imposed on unbuffered writes mean that the blocksize and buffer address
have to be integer multiples of the volume sector size. Which means that in my typical
applications I’ll have to do the buffering myself which may or may not be as efficient
as writes buffered by the system.
I guess the speed variation due to the position on the physical disk is not
in evidence because of the slow USB interface.
Below is a comma separated value table with explanations of the column titles.
Regards, Richard.
Buffered:
SECS1: Writing 60GB to an empty file with buffer size of 2MB.
SECS2: Writing 60GB to a written file with buffer size of 2MB.
SECS3: Writing 60GB to an empty file with buffer size of 32KB.
SECS4: Writing 60GB to a written file with buffer size of 32KB.
Unbuffered:
SECS1u: Writing 60GB to an empty file with buffer size of 2MB.
SECS2u: Writing 60GB to a written file with buffer size of 2MB.
SECS3u: Writing 60GB to an empty file with buffer size of 32KB.
SECS4u: Writing 60GB to a written file with buffer size of 32KB.
GB,SECS1u,SECS2u,SECS3u,SECS4u,SECS1,SECS2,SECS3,SECS4
0,0,0,0,0,0,0,0,0
1,40,39,50,46,46,45,53,40
2,80,78,99,92,92,91,108,80
3,120,117,149,139,138,136,163,121
4,159,156,198,185,185,182,218,161
5,199,195,248,231,231,228,273,202
6,239,234,298,277,279,273,327,243
7,279,274,348,323,325,319,382,283
8,319,313,397,369,372,365,440,324
9,359,352,447,415,420,411,496,365
10,399,391,497,461,468,456,552,405
11,438,430,546,507,516,501,611,446
12,478,469,596,553,564,547,669,487
13,518,508,645,599,612,592,727,528
14,558,547,695,645,659,638,785,569
15,598,586,744,691,706,683,842,609
16,638,625,794,737,754,729,902,650
17,678,664,843,783,803,774,962,692
18,718,703,893,829,850,820,1022,733
19,758,742,943,874,899,865,1084,774
20,798,781,992,920,945,910,1144,815
21,838,820,1042,966,994,956,1206,856
22,878,859,1092,1012,1042,1002,1269,897
23,917,898,1141,1058,1091,1047,1331,938
24,958,937,1191,1104,1139,1093,1394,979
25,998,977,1240,1151,1186,1139,1457,1020
26,1038,1016,1290,1196,1234,1185,1519,1061
27,1078,1055,1340,1242,1281,1230,1583,1102
28,1118,1094,1389,1288,1328,1276,1647,1143
29,1157,1133,1439,1334,1376,1322,1711,1184
30,1197,1172,1489,1380,1424,1367,1776,1225
31,1237,1211,1538,1426,1472,1413,1843,1266
32,1277,1250,1588,1472,1520,1460,1909,1307
33,1317,1289,1638,1518,1568,1506,1977,1348
34,1357,1329,1688,1564,1617,1552,2044,1390
35,1397,1368,1737,1609,1664,1599,2113,1431
36,1437,1407,1787,1655,1712,1645,2181,1472
37,1477,1446,1836,1701,1761,1692,2251,1512
38,1517,1485,1886,1747,1809,1739,2323,1554
39,1557,1524,1936,1793,1858,1785,2393,1595
40,1597,1563,1986,1839,1906,1832,2464,1637
41,1637,1602,2035,1885,1955,1880,2536,1678
42,1677,1641,2085,1930,2004,1927,2609,1719
43,1718,1680,2135,1976,2052,1973,2681,1760
44,1758,1719,2185,2022,2102,2020,2755,1801
45,1798,1758,2234,2068,2150,2068,2829,1843
46,1838,1797,2284,2114,2200,2115,2904,1884
47,1878,1837,2334,2159,2250,2162,2980,1925
48,1919,1876,2383,2205,2299,2210,3058,1966
49,1959,1915,2433,2251,2349,2258,3135,2007
50,1999,1954,2483,2297,2401,2307,3213,2049
51,2039,1993,2533,2343,2452,2355,3292,2090
52,2079,2032,2582,2390,2503,2404,3370,2131
53,2120,2071,2632,2436,2555,2454,3450,2172
54,2160,2110,2682,2482,2606,2503,3530,2213
55,2200,2149,2731,2528,2660,2553,3610,2255
56,2240,2188,2781,2574,2712,2603,3691,2296
57,2281,2227,2831,2620,2763,2652,3772,2337
58,2321,2267,2880,2665,2815,2702,3853,2378
59,2361,2306,2930,2711,2867,2752,3936,2419
60,2401,2345,2980,2757,