Autor Thema: Arithmetische Operationen durch Bitshift ersetzen  (Gelesen 6169 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline tobias

  • Administrator
  • *****
  • Beiträge: 43
    • Profil anzeigen
Arithmetische Operationen durch Bitshift ersetzen
« am: 08. März 2007, 22:59:27 »
Hat jemand hierzu schon Erfahrungen gesammelt, ob durch Bitshift-Operationen ST-Code beschleunigt werden kann? Wir sind gerade dabei zu testen, ob es sinnvoll wäre in der oscat.lib Divisionen und Multiplikationen von 2er-Potenzen durch Bitshiftoperationen zu ersetzen. Meiner Meinung nach kann dadurch die Ausführungszeit etlicher Funktionen und Funktionsblöcke reduziert werden. Ich weiß nicht in wieweit IEC 61131-3 konforme Compiler intern "optimieren", aber selbst in hohen Programmiersprachen wie C++ oder Java ist es immer noch gängig im Code Divisionen und Multiplikationen von 2er-Potenzen durch Bitshifts zu ersetzen. Ich weiß, dass dies nicht zur Lesbarkeit des Codes beiträgt ... Auf der anderen Seite werden hier SPS programmiert, wo es doch sehr stark auf die Performance ankommt.

Offline hugo

  • Global Moderator
  • *****
  • Beiträge: 2 150
    • Profil anzeigen
Re: Arithmetische Operationen durch Bitshift ersetzen
« Antwort #1 am: 09. März 2007, 09:23:32 »
hi tobias
wenn du mal eine schleife mit 10000 durcläufen programmierst und dann eine int variable mit bit shift mal2 nimmst oder teilst und dann mit einer schleife mit div und mul vergeichst aendert sich da was ?