¿Hay alguna aceleración del nivel del sistema operativo (Linux) al escribir un búfer de bytes fijo en muchos descriptores de archivos? Al escribir muchos búferes en un descriptor de archivo, se puede usar writev(2)
, por lo que me pregunto si hay algo análogo a esto o si debe ser realizado por múltiples llamadas de sistema.Escribiendo a varios descriptores de archivos
9
A
Respuesta
2
No conozco dicho syscall en Linux. Su lista exhaustiva se proporciona en la página del manual syscalls(2).
Y no me molestaré tanto. Para el acceso a archivos, el verdadero cuello de botella es el disco ...
0
Una combinación de vmsplice
y tee
debe hacer lo que se solicitó, aunque hay varias llamadas a la misma, pero la barrera espacio-usuario/kernel-espacio se cruza solo una vez.
+0
Gracias, pero es solo para tuberías. – Cartesius00
1
no he utilizado, pero esto podría funcionar: lio_listio
Cuestiones relacionadas
- 1. Escribiendo varios argumentos varargin
- 2. (Escribiendo kernel) ¿Cómo modifico la tabla de descriptores de interrupción?
- 3. Hilos y descriptores de archivos
- 4. Evitando la reutilización de descriptores de archivos
- 5. descriptores de archivos múltiples a un mismo archivo, C
- 6. ¿Cómo funcionan los descriptores de archivos?
- 7. Python: Escribiendo a Excel 2007+ archivos (.xlsx)
- 8. Python3: escribiendo archivos csv
- 9. escribiendo en archivos binarios
- 10. ¿Crea un nuevo subproceso descriptores de archivos duplicados y descriptores de socket en Linux?
- 11. JSONCPP Escribiendo en los archivos
- 12. Varios archivos adjuntos a través de phpmailer
- 13. ¿Entiendo cómo funcionan los descriptores de archivos Unix en C?
- 14. ¿Entradas de varios archivos?
- 15. sh: ¿Cómo evito los descriptores de archivos numerados?
- 16. Ayuda con los descriptores de archivos en Unix
- 17. ¿Qué nombre de variable usas para los descriptores de archivos?
- 18. Acceso a varios archivos en VIM
- 19. Bash ambiguo redirigir - redirigir a varios archivos
- 20. Redireccionando stdout/stderr a varios archivos
- 21. escribiendo 'bits' en secuencias de archivos C++
- 22. Escribiendo archivos de gran tamaño usando BufferedOutputStream
- 23. ¿Se comparten descriptores de archivos al tenedor() ing?
- 24. Organización de varios archivos de CoffeeScript
- 25. Escribiendo a la tarjeta SD
- 26. JSLint con varios archivos
- 27. edición automatizada de varios archivos
- 28. Rellenar varios archivos PDF
- 29. ¿Cómo adormezco un proyecto de varios archivos?
- 30. Copia efectiva de varios archivos
Excepto que escribe no ir en el disco; todo lo que 'write' hace es copiar los datos a un buffer en el kernel. (Hay opciones para cambiar esto, pero este es el comportamiento predeterminado.) Y la pregunta del OP es buena, ya que si existiera esa pregunta, significaría una copia, y probablemente solo un buffer en el kernel (menos recursos). utilizado en kernel). –
Estoy de acuerdo y lo sé, pero cuando tienes suficiente memoria RAM para que todos los archivos calientes entren dentro, no debes preocuparte demasiado. No creo que el núcleo pueda compartir segmentos de archivos entre distintos archivos. –
@JamesKanze: No estoy seguro de que el búfer compartido funcione. Si tiene dos archivos, uno en una SSD y uno en una unidad de red muy, muy lejana, ¿debería la SSD esperar la unidad de red? Dependiendo de la situación, puede preferir tener al menos un archivo escrito con éxito en lugar de dos medios escritos. –