[dcc32 Suggerimento] funzione H2443 Inline 'RenameFile' non è stato ampliato perché unita 'Winapi.Windows' non è specificato nella lista USIPerché Sysutils.RenameFile è in linea?
Capisco che inlining una funzione rende il codice più veloce. Ma vedo il guadagno solo in spazi ristretti. Ad esempio chiamando una piccola funzione in un grande ciclo.
Ma come è possibile migliorare la velocità con una funzione di I/O? Intendo, richiamando RenameFile guadagni qualche microsecondo. Ma l'esecuzione della funzione stessa può richiedere millisecondi, forse anche decine di ms se il disco è occupato.
Ancora di più, se si utilizza RenameFile, si è probabilmente in un blocco di codice in cui si stanno eseguendo altre operazioni di I/O. Quindi, questo blocco di codice impiegherà molto tempo. Quindi, il guadagno è ancora più insignificante adesso.
Per lo stesso motivo hanno dichiarato il suo parametro 'const' ... il guadagno di prestazioni potrebbe non essere così significativo, ma è più o meno libero. (Se non lo sapessi, dichiarando un parametro stringa 'const' rimuovi Inc/dec dal suo conteggio di riferimento quando viene passato a una funzione). –
@ KenBourassa-CONSTactually fa più di quello ed in determinate condizioni (incontrate abbastanza spesso) il guadagno di velocità è grande. – Ampere
e che altro fa nel contesto di una stringa?Per un record, sarà passato per indirizzo invece di copiare il suo contenuto quindi sì, certo, il guadagno di velocità può essere piuttosto grande. Ma nel contesto di un parametro stringa, il conteggio dei riferimenti (e tutto ciò che è relativo) è l'unica differenza AFAIK. –