Je dois commencer par dire que j'ai très peu d'idée sur ce sujet alors humour moi si je semble ignorant. En raison du problème d'avoir à utiliser une bibliothèque vC++ dans un programme compilé g ++, j'ai construit un système serveur-client local où le serveur est compilé dans vC++ et le client en g ++ et ils interagissent via des sockets. Il y a beaucoup de transfert de données à travers le socket (près de 2 000 000 enregistrements sur 22 champs) et c'est un goulot d'étranglement majeur qui ralentit beaucoup le processus. Y a-t-il quelque part une sorte de mémoire partagée entre les processus serveur et client pour que l'accès soit beaucoup plus rapide?mémoire partagée entre les compilateurs?
Répondre
Si elles sont sur le même PC alors oui, la mémoire partagée est plus rapide et elle fonctionne de façon défenetly à travers différents programmes.
Si c'est sur des PC différents, oui aussi, mais ça ne va pas être plus rapide que les sockets.
est sur le même pc. comment puis-je utiliser la mémoire partagée? veuillez me diriger vers des ressources – aks
Jetez un coup d'oeil ici: http://www.google.de/search?q=windows+shared+memory&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-GB: officiel et client = firefox-a et ici: http://stackoverflow.com/questions/697664/using-shared-memory-under-windows-how-to-pass-different-data – BarsMonster
recommanderiez-vous boost :: interprocess pour ma situation ? – aks
Je suppose que vous l'utilisez sur un système Windows? (Vous ne dites pas.) Comme c'est client-serveur local, vous avez d'autres options.
Pour la communication inter-processus de Windows de grandes quantités de données, vous devriez envisager d'utiliser des fichiers mappés en mémoire, je pense. Ceux-ci peuvent être partagés en utilisant les poignées de la mémoire clobal. Ensuite, avec les objets du noyau partagés pour la synchronisation (mutex, je dirais, ou les événements) vous pouvez contrôler l'accès pour vous assurer que c'est fait de manière sûre.
Pourvu qu'il soit toujours local, c'est probablement votre méthode la plus rapide et la plus sûre.
(je vous donne des informations API plus spécifiques, mais je pris mes livres à la maison hier dans le cadre d'un bureau éclaircir - désolé)
"Gestion des fichiers mappés en mémoire" http://msdn.microsoft.com/fr-fr/library/ms810613.aspx – tenfour
- 1. La mémoire partagée n'est pas partagée entre les processus
- 2. Java Concurrency: Mémoire partagée entre les threads
- 3. Mémoire partagée et communication entre programmes
- 4. Mémoire partagée entre 2 processus (applications)
- 5. Sémaphore de mémoire partagée
- 6. Est-il possible de partager une structure C en mémoire partagée entre des applications compilées avec différents compilateurs?
- 7. mod_fcgi + APC + Mémoire partagée
- 8. Mémoire partagée sans fichiers mappés en mémoire
- 9. Ecriture en mémoire partagée
- 10. Mémoire partagée Linux
- 11. Différence entre la mémoire partagée et le canal dans unix?
- 12. Augmenter la mémoire pour la mémoire partagée
- 13. Les mutex pthread fonctionnent-ils entre les threads s'ils sont en mémoire partagée?
- 14. Visual Studio et mémoire partagée
- 15. Exemple de mémoire partagée pour Symbian
- 16. Problème d'initialisation de mémoire partagée (c)
- 17. Variable globale dans une bibliothèque partagée/dll, partagée entre processus
- 18. matrice opencv dans la mémoire partagée
- 19. DLL partagée entre l'application et la session partagée
- 20. Instanciation d'objets dans la mémoire partagée C++
- 21. Sempahores la mémoire partagée et processus (IPC)
- 22. Charger la mémoire partagée dans C
- 23. Comment implémenter la mémoire partagée dans .NET?
- 24. SQL Server « fournisseur de mémoire partagée » Erreur
- 25. Compilateurs pour les scripts shell
- 26. Base de données Android SQLite partagée entre les activités
- 27. Ruby on Rails: méthode partagée entre les modèles
- 28. Comment utiliser le mutex nommé et la mémoire partagée entre un service Windows et un processus?
- 29. C# mémoire partagée entre l'application C++ et l'application C# utilisant l'objet COM
- 30. Session partagée entre deux PC différents
AKS Bonjour, Avez-vous atteint en fait une communication de mémoire partagée entre les processus compilés par différents compilateurs? (Vous mentionnez vC++ et g ++). – tssch