Saya memiliki aplikasi Java, menghubungkan melalui soket TCP ke "server" yang dikembangkan dalam C / C ++.
baik aplikasi & server berjalan pada mesin yang sama, kotak Solaris (tetapi kami mempertimbangkan untuk bermigrasi ke Linux pada akhirnya). Jenis data yang dipertukarkan adalah pesan sederhana (login, login ACK, lalu klien meminta sesuatu, server membalas). setiap pesan berukuran sekitar 300 byte.
Saat ini kami menggunakan Sockets, dan semuanya baik-baik saja, namun saya mencari cara yang lebih cepat untuk bertukar data (latensi lebih rendah), menggunakan metode IPC.
Saya telah meneliti internet dan menemukan referensi ke teknologi berikut:
- Berbagi memori
- pipa
- antrian
- serta apa yang disebut sebagai DMA (Direct Memory Access)
tetapi saya tidak dapat menemukan analisis yang tepat untuk performanya masing-masing, juga cara mengimplementasikannya di JAVA dan C / C ++ (sehingga mereka dapat berbicara satu sama lain), kecuali mungkin pipa yang dapat saya bayangkan bagaimana melakukannya.
Adakah yang bisa berkomentar tentang penampilan & kelayakan setiap metode dalam konteks ini? ada penunjuk / tautan ke informasi implementasi yang berguna?
EDIT / PERBARUI
mengikuti komentar & jawaban yang saya dapatkan di sini, saya menemukan info tentang Soket Domain Unix, yang tampaknya dibangun di atas pipa, dan akan menghemat seluruh tumpukan TCP. itu khusus platform, jadi saya berencana mengujinya dengan JNI atau juds atau junixsocket .
Langkah selanjutnya yang memungkinkan adalah implementasi langsung dari pipa, kemudian memori bersama, meskipun saya telah diperingatkan tentang tingkat kerumitan ekstra ...
terima kasih atas bantuan Anda