Article View: pl.comp.lang.asm
Article #2600Re: [1/3 NTG] C - Optymalizacje wstawkami
From: DMR
Date: Wed, 13 Feb 2019 18:12
Date: Wed, 13 Feb 2019 18:12
55 lines
3264 bytes
3264 bytes
Poleciałem trochę po łebkach, a zapomnialem, że taki bufor z danymi można sobie łatwo sprokurować:
//------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
//------------------------------------------------------------------------------
int main()
{
char *cBuffer;
char *endptr;
int nSize, nIterations, i;
volatile double fValue;
nSize = 8000000;
nIterations = 1000;
cBuffer = (char*)malloc(nSize + 1);
cBuffer[nSize] = '\0'; // robimy sobie dane, zero na końcu
sprintf(cBuffer, "%0.10f", 3.14159265358979); // Pi do 10 cyfr
for (i = 12; i < nSize; i++) // osiem mega 'A'... ;-)
cBuffer[i] = 'A';
// cBuffer[12] = '\0';
for (i = 0; i < nIterations; i++) // no i jazda...
fValue = strtod(cBuffer, &endptr);
printf("%0.10f", fValue);
free(cBuffer);
return 0;
}
//------------------------------------------------------------------------------
Wyłączenie/włączenie linijki przed pętlą zmienia czas wykonania z milisekund na długie sekundy...
> Ciekawe, ciekawe. Cóż, tak, wymyślane są coraz to nowe algorytmy.
Widzę, że chłopaki twardo trzymają się arytmetyki całkowitoliczbowej.
To może mięć sens, ale wcale nie musi - przedzieranie się przez gąszcz tych instrukcji może być w sumie bardziej złożone, niż dwa szybkie strzały na FPU.
W końcu po coś on jest... ;-)
Bo tymczasem na świecie dzieją się takie cuda: https://godbolt.org/z/OvePjK
Trzeba będzie się nad tematem pochylić, może jeszcze przed emeryturą... ;-)
Technical Details
Message-ID:
<17dc9fb7-38b2-4278-a1fc-d7b9c4746e70@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!u127no26ita.0!news-out.google.com!2ni122itx.0!nntp.google.com!u127no21ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<30292520-12bd-49f0-b5ce-39c9af378a4c@googlegroups.com> <5c5b41d7$0$501$65785112@news.neostrada.pl> <781a3ad8-10bb-42aa-939f-dc6c11efa783@googlegroups.com> <5c5df439$0$476$65785112@news.neostrada.pl> <5e988bac-236b-42c4-8f94-87c5586d58d1@googlegroups.com> <5c632cc2$0$492$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
X-Received: by 2002:a24:5755:: with SMTP id u82mr1127518ita.16.1550081528831; Wed, 13 Feb 2019 10:12:08 -0800 (PST) X-Received: by 2002:a9d:654f:: with SMTP id q15mr29512otl.6.1550081528458; Wed, 13 Feb 2019 10:12:08 -0800 (PST) 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!u127no26ita.0!news-out.google.com!2ni122itx.0!nntp.google.com!u127no21ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.asm Date: Wed, 13 Feb 2019 10:12:08 -0800 (PST) In-Reply-To: <5c632cc2$0$492$65785112@news.neostrada.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=80.238.104.22; posting-account=FE4hoAoAAADKg8EtnA4bEyQiJf7iqAgV NNTP-Posting-Host: 80.238.104.22 References: <30292520-12bd-49f0-b5ce-39c9af378a4c@googlegroups.com> <5c5b41d7$0$501$65785112@news.neostrada.pl> <781a3ad8-10bb-42aa-939f-dc6c11efa783@googlegroups.com> <5c5df439$0$476$65785112@news.neostrada.pl> <5e988bac-236b-42c4-8f94-87c5586d58d1@googlegroups.com> <5c632cc2$0$492$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <17dc9fb7-38b2-4278-a1fc-d7b9c4746e70@googlegroups.com> Subject: Re: [1/3 NTG] C - Optymalizacje wstawkami From: DMR <mezzogm@gmail.com> Injection-Date: Wed, 13 Feb 2019 18:12:08 +0000 Lines: 65 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit