Próbuję zaimplementować zerową kopię tcp za pomocą doładowania, ale nie jestem w stanie znaleźć niczego na google. Moje pytanie jest możliwe, aby wykonać zerową kopię za pomocą bibliotek doładowania, a jeśli tak, proszę wysłać mi przykład lub jakiś link.TCP Zero kopiowanie za pomocą zwiększenia
Odpowiedz
Można oglądać ten wykład BoostCon przez chłopaków Yandex: The Optimization of a Boost.Asio-based Networking Server
Moje przeczucie mówi, że (faceci Yandex) overengineered to (trochę ...). Powiedziałbym, że podstawowe rozwiązanie będzie polegało na użyciu wstępnie przydzielonych stałych buforów (być może na wątek) i użycia koncepcji MutableBufferSequence z Asio, aby skleić je ze sobą.
To podejście jest znane pod nazwą i zostało krótko opisane w dokumentach Asio. Może istnieć odpowiedni przykład: http://www.boost.org/doc/libs/1_56_0/doc/html/boost_asio/examples/cpp11_examples.html#boost_asio.examples.cpp11_examples.buffers
Jak już @Nim skomentował, Asio domyślnie działa w trybie "zerowej kopii" (ponieważ nigdy nie jest właścicielem bufora, ani nie alokuje w imieniu osoby dzwoniącej). Tak więc powinno być całkiem proste, aby to działało. Oczywiście, czy funkcje jądra/biblioteki libc są zaimplementowane w trybie zerowej kopii, zależy wyłącznie od systemu operacyjnego/platformy.
- 1. Kopiowanie tekstu do schowka za pomocą Zero Schowek w ASP.NET
- 2. Połączenie TCP należące do pid zero
- 3. Jak słuchać portu TCP za pomocą PHP?
- 4. Kopiowanie tekstu do schowka za pomocą Java
- 5. Kopiowanie tylko istniejących plików za pomocą robocopy
- 6. Kopiowanie arkusza kalkulacyjnego za pomocą Apache POI
- 7. Kopiowanie obrazu za pomocą UIPasteBoard (Swift)
- 8. Przesyłanie plików za pomocą TCP w systemie Linux
- 9. Jak znaleźć wolny port serwera TCP za pomocą Ruby?
- 10. Jak zmienić licznik keepcive tcp za pomocą skryptu python?
- 11. Tworzenie połączenia klienta TCP za pomocą protokołu SSL
- 12. Połączenie TCP za pomocą powrotu do gniazda false wyniki
- 13. Wysyłanie pliku do portu dynamicznego za pomocą protokołu TCP
- 14. Łączenie się z serwerem TCP/IP za pomocą skryptu php
- 15. Jak wykryć kopiowanie i wklejenie kodu za pomocą git?
- 16. Kopiowanie pliku z jednego katalogu do drugiego za pomocą Ruby
- 17. Kopiowanie wizualizacji przeglądarki neo4j za pomocą d3.js
- 18. MSBuild: dodawanie/kopiowanie pustych folderów za pomocą zadania Zip/Copy
- 19. Kopiowanie/mieszanie obrazów o różnych rozmiarach za pomocą opencv
- 20. Ignoruj zero właściwości podczas szeregowania JSON za pomocą RestKit
- 21. Asio bez zwiększenia
- 22. JAVA_OPTS dla zwiększenia wielkości sterty
- 23. Łączność TCP/IP za pośrednictwem DataSnap
- 24. Kopiowanie plików na serwer zdalny za pośrednictwem protokołu RDP za pomocą skryptu
- 25. TCP i PF_RING
- 26. WPF VirtualizingStackPanel dla zwiększenia wydajności
- 27. Python * do zwiększenia :: python :: obiekt
- 28. Brakujący wyjątek w procesie zwiększenia
- 29. Metoda Pythona w celu zwiększenia funkcji
- 30. Funkcja zwiększenia :: powiązanie i klasa członkowska
'boost :: asio' jest zerową kopią, ponieważ nie skopiuje buforów przez nią przechodzących. Jednak, czy operacje zerowego kopiowania będą używane przez stos tcp - to inny problem .. – Nim