Article View: pl.comp.lang.c
Article #309669Re: Dlaczego ten test nie działa
From: bartekltg
Date: Thu, 12 Apr 2018 13:42
Date: Thu, 12 Apr 2018 13:42
78 lines
4319 bytes
4319 bytes
On Thursday, April 12, 2018 at 9:56:05 AM UTC+2, Maciek wrote:
> W dniu środa, 11 kwietnia 2018 21:53:29 UTC+2 użytkownik Wojciech Muła napisał:
> > On Wednesday, April 11, 2018 at 6:50:09 PM UTC+2, Maciek wrote:
> > > Cześć. Chciałem zapytać dlaczego poniższy test nie działa:
> > >
> > > std::cout<<((double)(c_after - c_before)/CLOCKS_PER_SEC>=1.0)<<" \r";
> > >
> > > Chodzi o to e chce coś zrobić kiedy ten test będzie true c_after - c_before mają wynik funkcji clock().
> > >
> > > To tyle w dużym skrócie. Dzięki cześć.
> >
> > Wyrażenie wygląda OK, wyświetl sobie c_after oraz c_before
> > i zobacz co tam masz.
> >
> > BTW skoro używasz C++, to zainteresuj się nagłówkiem chrono,
> > bardzo porządnie zrobiony -- http://en.cppreference.com/w/cpp/header/chrono.
> >
> > w.
>
> To jesteś mi w stanie wytumaczyć dlaczego poniższa funkcja nie działa:
>
> unsigned int a=0, b=0, c=0, d=0, result=0;
> unsigned int op_per_sec;
> std::clock_t c_before, c_after=0;
> c_before=std::clock();
> std::vector<unsigned int> vec(1000000);
> for(unsigned int i=0; i<100000000; ++i) {
> result = a+b+c+d;
> ++op_per_sec;
> c_after = std::clock();
> if((double(c_after - c_before)/CLOCKS_PER_SEC)>=1.0)
> std::cout<<"IN FUNCTION "<<__func__<<"OP PER SEC IS : "<<op_per_sec<<" \r";
> std::cout.flush();
> c_before = std::clock();
> op_per_sec = 0;
> }
> }
>
> konkretnie linia std::cout<<"IN FUNCTION "<<__func__<<"OP PER SEC IS : "<<op_per_sec<<" \r";
>
> nic mi nie wypisuje.
Popatrz na ten program dobrze. Nadmiar pythona;p
> std::cout.flush();
> c_before = std::clock();
> op_per_sec = 0;
robisz w _każdej_ pętli, więc c_before zawsze
jest aktualne, ma wartość z poprzedniej pętli,
mierzysz więc czas wykonania pojedyńczej pętli, nie
od początku/od resetu.
Wstaw klamerki
unsigned int bar(){
uint64_t a=0, b=0, c=0, d=0, result=0;
uint64_t op_per_sec;
std::clock_t c_before, c_after=0;
c_before=std::clock();
std::vector<unsigned int> vec(1000000);
for(uint64_t i=0; i<1000000000000llu; ++i) {
result = a+b+c+d;
++op_per_sec;
c_after = std::clock();
if((double(c_after - c_before)/CLOCKS_PER_SEC)>=1.0){
std::cout<<"IN FUNCTION "<<__func__<<"OP PER SEC IS : "<<op_per_sec<<" \r";
std::cout.flush();
c_before = std::clock();
op_per_sec = 0;
}
}
return result;
}
pzdr
bartekltg
Technical Details
Message-ID:
<28f03fe8-2266-4732-97e1-a59291320a22@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!s52no1778928qtc.0!news-out.google.com!e12ni3150qtp.1!nntp.google.com!s52no1778903qtc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<11e93e39-69fc-4ee2-8886-9d077c8026fb@googlegroups.com> <2750bf86-40ef-4907-90fd-89e8542c0183@googlegroups.com> <a6c0bdb8-b0e7-4628-a7d6-bf79907261a2@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.55.73.149 with SMTP id w143mr696023qka.12.1523540532003; Thu, 12 Apr 2018 06:42:12 -0700 (PDT) X-Received: by 10.31.52.139 with SMTP id b133mr99794vka.10.1523540531360; Thu, 12 Apr 2018 06:42:11 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!s52no1778928qtc.0!news-out.google.com!e12ni3150qtp.1!nntp.google.com!s52no1778903qtc.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Thu, 12 Apr 2018 06:42:11 -0700 (PDT) In-Reply-To: <a6c0bdb8-b0e7-4628-a7d6-bf79907261a2@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.70.113.215; posting-account=CvUQzQoAAABvVQmR58QmR6N4Cev1qhAS NNTP-Posting-Host: 89.70.113.215 References: <11e93e39-69fc-4ee2-8886-9d077c8026fb@googlegroups.com> <2750bf86-40ef-4907-90fd-89e8542c0183@googlegroups.com> <a6c0bdb8-b0e7-4628-a7d6-bf79907261a2@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <28f03fe8-2266-4732-97e1-a59291320a22@googlegroups.com> Subject: Re: Dlaczego ten test nie działa From: bartekltg <bartekltg@gmail.com> Injection-Date: Thu, 12 Apr 2018 13:42:11 +0000 Lines: 88 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit