🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #310362

Re: Timer pomiędzyprocesowy

#310362
From: bartekltg
Date: Sat, 26 Jun 2021 23:35
53 lines
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-mail
References: <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