Hmm. well, I don't think this test is very meaningful. If the machines have 256M of ram and the test is doing a two-swipe access of 256M of VM. This doesn't represent any real test and I would not be surprised by the difference in timing.
It all comes down to how much real memory Linux and FreeBSD give to the process and there is no right answer to the question because it's a tradeoff. An OS does not magically know that only one process will ever need all of the machine's resources, for example, so different operating systems are going to have very different characteristics under these sorts of conditions. One might give over more memory, another might want to avoid completely blowing away its other caches. One might work well for linux in a one-process memory test could fail miserably in a multi-process memory test, for example, or with a different pattern of memory accesses, or a different load split between cpu, memory, and disk I/O. You (Dimitar and others) also need to be careful about making broad generalizations. Testing pure swapping performance with the below program implies that you intend to run applications that will need to swap heavily (for example, big mathmatical applications). If you don't intend to run applications that will need to swap heavily then this test is fairly meaningless as a measure of performance. Another point that I should bring up in regards to swap performance: systems that require good swap performance will almost always have more then one physical disk to swap to. FreeBSD is very good at paging to swap with a single disk, but it kicks ass paging to swap with multiple disks because it implements a very good interleaving algorithm. -Matt Matthew Dillon <[EMAIL PROTECTED]> :Am I the only one who saw that he attached it to his 1st mail? : :Here you go: : :#include <stdlib.h> :#include <string.h> :#include <stdio.h> : :#define MALLOC_SIZE 1024*1024*256 : :int main(int argc, char **argv) { : char *ptr; : int i, i_count; : int j; : : ptr = (char *) malloc(MALLOC_SIZE); : bzero(ptr, MALLOC_SIZE); : : i_count = MALLOC_SIZE / 16; : fprintf(stderr, "*"); : for (i = 0; i < i_count; i ++) { : ptr[i >> 4] = ptr[(i >> 3) + 1]++; : } : fprintf(stderr, "#"); : for (j = 0; j < i_count; j ++) { : ptr[j << 4] = ptr[(j >> 3) + 1]++; : } : : free(ptr); : return 0; :} To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message