Article View: pl.comp.lang.c
Article #310362Re: Timer pomiędzyprocesowy
From: bartekltg
Date: Sat, 26 Jun 2021 23:35
Date: Sat, 26 Jun 2021 23:35
53 lines
3534 bytes
3534 bytes
piątek, 25 czerwca 2021 o 07:30:25 UTC+2 heby napisał(a): > On 24/06/2021 22:43, bartekltg wrote: > > A co ważniejsze, naprawdę potrzebujesz wiedzieć, ile minie pomiędzy taką komunikacją? > Mam poważny problem związany z utylizacją CPU między procesami: > > 1) pętla > 2) A: wysyła bajt do rurki > 3) A: blokuje się na read bajtu w innej rurce > 4) B: odbiera bajt i go odsyła inną rurką > 5) B: blokuje się na read bajtu > 6) NEXT I > > Innymi słowy program nie robi nic, poza bezustannym przesyłaniem z > potwierdzeniem. No, jeśli potwierdzanie to komunikacja z B do A i potwierdzasz po każdym bajcie, to nic dziwnego, że to działa na ułamek procenta. Jesteś w ogole pewien, że odpalają się dwa wątki? > Taki program utylizuje ~2% CPU... Całą reszta, jesli rozumiem, zostaje > skonsumowana na wybudzanie/usypianie procesów. > Jestem ciekaw o jakich rozmiarach katastrofach rozmawiamy, czy naprawdę > zablokowanie się read na strumieniu zajmuje miliony cykli zegara cpu? > > To będzie zależne od bardzo wielu rzeczy i niezbyt powtarzalne. A jak robisz jakiś system > > czasu rzeczywistego... > Interesuje mnie wydajnoć. Muszę się *szybko* komunikować między kilkoma > procesami i rurki okazują się być kłopotliwe, mam na nich absurdalne > spowolnienia. No, w sumie rurki nie sa od tego. To zastępuje sytuacje A pisze do pliku, B czyta z pliku, nikt nie obiecuje, że nie będzie buforowania etc, w końcu co zbobić z jednym bajtem. Jak chcesz iść całkiem na całość, to pewnie to lub coś podobnego: https://www.boost.org/doc/libs/1_76_0/doc/html/interprocess.html https://theboostcpplibraries.com/boost.interprocess Ale to trochę overkill. Zastanow sie, czy na pwno potrzebujesz osobnych proecesów, może wątki wystarczą. Jak chcesz duzęgo transferu danych (i dużych % w uzyciu cpu), transferuj duze paczki danych, buforuj etc. Jeśli chesz szybkiej reakcji, jak pisałem poprzednio, nie ten system. pzdr bartekltg
Technical Details
Message-ID:
<69bd44d4-ae32-479d-bd33-a858bbf1dcddn@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<s85jc8$i4p$1@dont-email.me> <a7ffc312-f808-4e5f-8a26-a13779b59962n@googlegroups.com> <sb3pld$464$1@dont-email.me>Show Full Headers
Complete Article Headers
X-Received: by 2002:a05:622a:38d:: with SMTP id j13mr15953246qtx.10.1624750531595; Sat, 26 Jun 2021 16:35:31 -0700 (PDT) X-Received: by 2002:a0c:e18c:: with SMTP id p12mr18351679qvl.54.1624750531399; Sat, 26 Jun 2021 16:35:31 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Sat, 26 Jun 2021 16:35:31 -0700 (PDT) In-Reply-To: <sb3pld$464$1@dont-email.me> Injection-Info: google-groups.googlegroups.com; posting-host=2a02:a311:403b:c080:8c91:ea4b:ba34:aeac; posting-account=CvUQzQoAAABvVQmR58QmR6N4Cev1qhAS NNTP-Posting-Host: 2a02:a311:403b:c080:8c91:ea4b:ba34:aeac References: <s85jc8$i4p$1@dont-email.me> <a7ffc312-f808-4e5f-8a26-a13779b59962n@googlegroups.com> <sb3pld$464$1@dont-email.me> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <69bd44d4-ae32-479d-bd33-a858bbf1dcddn@googlegroups.com> Subject: Re: Timer pomiędzyprocesowy From: bartekltg <bartekltg@gmail.com> Injection-Date: Sat, 26 Jun 2021 23:35:31 +0000 Lines: 72 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit