realloc+write benchmark

Divacky Roman xdivac02 at stud.fit.vutbr.cz
Tue Jan 27 10:15:11 CET 2004


Dival jsem se na malloc/realloc kod v freebsd i v linuxu... nejsem na to 
odbornik, ale zda se mi to priblizne stejne. akorat v fbsd se s tou zonou primo
manipuluje zatimco v linuxu se meni pouze parametry ve slabu. coz pokud tomu
rozumim je sice rychlejsi ale veskere dalsi operace probehnou "lazy" zpusobem
ale tezko rict

dalsi rozdil ktery jsem nalezl je ze fbsd malloc()ovane stranky plni junkem (to
se da vypnout - viz. malloc.conf) - coz zpomaluje


zkuste aplikovat tento patch - treba to trosku zlepsi vysledky vasich
benchmarku (ale pochybuji) - usetri se tim jedno zamknuti/odemknuti vm_map

--- vm_unix.c	Wed Nov 12 20:45:35 2003
+++ vm_unix.c.new	Mon Jan 26 15:22:27 2004
@@ -83,10 +83,15 @@
 
 	do_map_wirefuture = FALSE;
 	new = round_page((vm_offset_t)uap->nsize);
-	vm_map_lock(&vm->vm_map);
 
 	base = round_page((vm_offset_t) vm->vm_daddr);
 	old = base + ctob(vm->vm_dsize);
+
+	if (new == old)
+	   return 0;
+
+	vm_map_lock(&vm->vm_map);
+
 	if (new > base) {
 		/*
 		 * Check the resource limit, but allow a process to reduce


takhle to ma linux i netbsd - docela by mne zajimalo jak se projevi vase
mikrobenchmarky po aplikaci. pokud to (byt i minimalne) pomuze pak bych to
zkusil zaslat jako PR


r.d.



More information about the Users-l mailing list