<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2015-10-28 14:42 GMT+00:00 Manlio Perillo <span dir="ltr"><<a href="mailto:manlio.perillo@gmail.com" target="_blank">manlio.perillo@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":3vk" class="a3s" style="overflow:hidden">Si, alla fine credo sia la cosa migliore, eseguendo il codice in un<br>
processo separato come suggerisci.<br>
Magari se ho tempo lo implemento per la mia libreria, anche se<br>
probabilmente non la userò molto.<br>
Forse usando fork/vfork (e ignorando Windows) si riesce a fare anche<br>
in modo abbastanza semplice,<br></div></blockquote><div><br></div><div>Non vuoi usare vfork. Su un processo piccolo (come dovrebbe essere il runner dei test) la differenza di performance sara' 10-20% in favore di vfork.</div><div><br></div><div>Il problema e' che vfork e' veramente bislacca come semantica. Tipo il fatto che vfork ti sospende il parent finche' il child non ha fatto exec probabilmente non e' quello che vuoi. C'e' caso che quello che guadagni in termini di performance, lo perdi perche' il parent nel frattempo deve aspettare a fare qualunque cosa. </div><div><br></div><div>Il pezzo pero' piu' fastidioso della semantica di vfork e' che qualunque cosa tu faccia fra vfork e exec nel figlio -- ovviamente, visto che il padre e' stoppato -- si riflette nel padre. Il che puo' essere o meno quello che vuoi. Io non sono sicuro se fare affidamento su questo comportamento specifico per creare il tutto sia una buona idea. Se invece uno non lo vuole esplicitamente, secondo me e' solo una potenziale fonte di bachi.</div><div><br></div><div>Aggiuntivamente non e' necessario che il modello migliore passi per exec. Potrebbe essere piu' conveniente fare semplicemente fork (un sacco di IPC e' piu' comoda) ed eseguire il codice del test.</div><div><br></div><div>Viceversa, se usi direttamente clone con opzioni opportune potresti essere 30 volte piu' veloce (sia di fork che di vfork).</div><div>Allora per prendersi lo sbatti di usare qualcosa che non e' fork, un 30x magari vale la pena... il 20% sulla syscall, che mi aspetto sia comunque relativamente trascurabile rispetto al tempo di tirare su il test, eseguirlo e poi eventualmente raccogliere statistiche e simili, secondo me non vale la pena.</div><div><br></div></div><br clear="all"><div><br></div>-- <br><div class="gmail_signature"> .<br>..: -enrico-</div>
</div></div>