<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.electroniciens.cnrs.fr/index.php?action=history&amp;feed=atom&amp;title=Benchmark_Serial_Arduino</id>
	<title>Benchmark Serial Arduino - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.electroniciens.cnrs.fr/index.php?action=history&amp;feed=atom&amp;title=Benchmark_Serial_Arduino"/>
	<link rel="alternate" type="text/html" href="https://wiki.electroniciens.cnrs.fr/index.php?title=Benchmark_Serial_Arduino&amp;action=history"/>
	<updated>2026-06-14T14:01:52Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.electroniciens.cnrs.fr/index.php?title=Benchmark_Serial_Arduino&amp;diff=2617&amp;oldid=prev</id>
		<title>Marc.dexet : Page créée avec « &lt;pre&gt; /* Objectif Montrer l&#039;effet de l&#039;usage abusif de Serial sur les performances.  Le programme exécute une opération idiote d&#039;incrémentation d&#039;une variable et son af... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.electroniciens.cnrs.fr/index.php?title=Benchmark_Serial_Arduino&amp;diff=2617&amp;oldid=prev"/>
		<updated>2015-01-23T13:58:26Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « &amp;lt;pre&amp;gt; /* Objectif Montrer l&amp;#039;effet de l&amp;#039;usage abusif de Serial sur les performances.  Le programme exécute une opération idiote d&amp;#039;incrémentation d&amp;#039;une variable et son af... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Objectif&lt;br /&gt;
Montrer l&amp;#039;effet de l&amp;#039;usage abusif&lt;br /&gt;
de Serial sur les performances.&lt;br /&gt;
&lt;br /&gt;
Le programme exécute une opération idiote d&amp;#039;incrémentation&lt;br /&gt;
d&amp;#039;une variable et son affichage.&lt;br /&gt;
&lt;br /&gt;
Nous mesurons le temps d&amp;#039;exécution avec l&amp;#039;usage de Serial.print&lt;br /&gt;
et sans.&lt;br /&gt;
&lt;br /&gt;
Les temps et le rapport entre les deux sont affichés à la fin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Auteur: MarcDexet (at) gmail.com&lt;br /&gt;
23 janvier 2015&lt;br /&gt;
Licence CC By SA 3&lt;br /&gt;
https://creativecommons.org/licenses/by-sa/3.0/legalcode&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#define NB_OF_ITERATIONS 1000&lt;br /&gt;
&lt;br /&gt;
byte runOnce 	= 0; // Flag pour fonctionner 1 fois&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
	Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
&lt;br /&gt;
	if ( ! runOnce ) {&lt;br /&gt;
		runOnce = 1;&lt;br /&gt;
&lt;br /&gt;
		//--------------------- &lt;br /&gt;
		//  Avec sortie SERIE&lt;br /&gt;
		//--------------------- &lt;br /&gt;
		volatile int k=0;&lt;br /&gt;
		unsigned long startTs = micros();&lt;br /&gt;
&lt;br /&gt;
		for(int i =0; i &amp;lt; NB_OF_ITERATIONS; i++) {&lt;br /&gt;
			k++;&lt;br /&gt;
			Serial.print(k);&lt;br /&gt;
		}&lt;br /&gt;
		unsigned long testWithSerial = micros() - startTs;&lt;br /&gt;
&lt;br /&gt;
		//--------------------- &lt;br /&gt;
		//  Sans sortie SERIE&lt;br /&gt;
		//--------------------- &lt;br /&gt;
		k=0;&lt;br /&gt;
		startTs = micros();&lt;br /&gt;
&lt;br /&gt;
		for(int i =0; i &amp;lt; NB_OF_ITERATIONS; i++) {&lt;br /&gt;
			k++;&lt;br /&gt;
		}&lt;br /&gt;
		unsigned long testWithoutSerial = micros() - startTs;&lt;br /&gt;
&lt;br /&gt;
		//- affichage final&lt;br /&gt;
		Serial.print(&amp;quot;\n\n AVEC &amp;quot;);&lt;br /&gt;
		Serial.print(NB_OF_ITERATIONS);&lt;br /&gt;
		Serial.print(&amp;quot;\nAVEC SORTIE PAR PORT SERIE (microsecond) &amp;quot;);&lt;br /&gt;
		Serial.println(testWithSerial);&lt;br /&gt;
&lt;br /&gt;
		Serial.print(&amp;quot;SANS PORT SERIE (microsecond) &amp;quot;);&lt;br /&gt;
		Serial.println(testWithoutSerial);&lt;br /&gt;
		Serial.println(&amp;quot;RAPPORT :&amp;quot;);&lt;br /&gt;
		Serial.println( ((float) testWithSerial)/((float) testWithoutSerial));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici les résultats sur un CoreI5 8Go de mémoire&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 AVEC 1000&lt;br /&gt;
AVEC SORTIE PAR PORT SERIE (microsecond) 2938100&lt;br /&gt;
&lt;br /&gt;
SANS PORT SERIE (microsecond) 1076&lt;br /&gt;
&lt;br /&gt;
RAPPORT :&lt;br /&gt;
&lt;br /&gt;
2730.58&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L&amp;#039;opération est &amp;#039;&amp;#039;&amp;#039;2730 fois plus lente&amp;#039;&amp;#039;&amp;#039; avec Serial.print que sans&lt;/div&gt;</summary>
		<author><name>Marc.dexet</name></author>
	</entry>
</feed>