Frage an die Systementwickler unter euch ...?

Diese Frage richtet sich an Low-Level-Entwickler und Leute, die eingebettete Systeme bzw. Mikrocontroller programmieren, oder ganz allgemein Kernelhacker:

Nutzt ihr während des Entwicklungsprozesses neben den herkömmlichen Werkzeugen wie Debugger, Profiler, Sanitizer, Fuzzer, usw. eigentlich auch Hardware-Messgeräte um den Stromverbrauch kritischer Codestellen zu messen?

Mir ist schon vor Jahren aufgefallen, dass wenn man laut Profiler zwei oder mehr gleichwertig wirkende Möglichkeiten der Optimierung hat, die Stromaufnahme meist extrem schwankt.

Ich mag ineffizienten Code überhaupt nicht, und wenn die CPU an einer kritische Stelle dauerhaft fünf mal so viel Strom frisst als nötig, optimiere ich das gerne weg.

In meinem Umfeld hat das keiner meiner früheren Kollegen so gemacht, und viele waren vorher auch sehr skeptisch, aber nach und nach haben sich viele ein Wattmeter vor den PC bzw. das entspr. Gerät gehängt, um zu sehen, wie der Stromverbrauch an kritischen Stellen im Vergleich zu ähnlichen Implementierungen ist.

Wir haben z. B. eine Bibliothek geschrieben, die auf einem Server "Dinge tut", und mit Implementierung A frisst ein entsprechender Teil über 100 Watt, mit Implementierung B hingegen nur so um die 20 Watt, bei gleicher Performance und gleichem Speicherverbrauch, laut Profiler.

Wie seht ihr das? Macht ihr das auch schon so? Oder ist das ein interessanter Denkanstoß?

(Ich weiß, dass das bei vielen Programmen kaum Sinn ergibt, und gerade Frameworks wie Electron so verschwenderisch mit Ressourcen umgehen, dass ich mich hier wirklich nur auf die Systemprogrammierung beziehe, bzw. an Leute richte, die relativ low-level Bibliotheken o. ä. entwickeln.)

Ich bedanke mich im Voraus und wünsche noch einen schönen Tag!

andere Antwort 100%
ist mir neu, klingt aber interessant 0%
ist mir neu, halte ich aber für Quatsch 0%
ist mir nicht neu, mache ich auch so 0%
ist mir nicht neu, mache ich aber nicht so 0%
Software, Linux, Hardware, Elektronik, Programmieren, Elektrotechnik, mikrocontroller, Programmierung, cplusplus, CPP, E-Technik, Hacker, Hacking, Unix
c# was ist daran falsch?

Hi,

Fehler ist in Zeile 49 ganz hinten bei bitmap ich weiß nicht was ich falsch gemacht habe(vielen dank im voraus):

        FilterInfoCollection filter;
        VideoCaptureDevice device;


        private void Form1_Load(object sender, EventArgs e)
        {
            filter = new FilterInfoCollection(FilterCategory.VideoInputDevice);
            foreach (FilterInfo device in filter)
                comboBox1.Items.Add(device.Name);
            comboBox1.SelectedIndex = 0;
            device = new VideoCaptureDevice();
        }


        private void btnDetect_Click(object sender, EventArgs e)
        {
            device = new VideoCaptureDevice(filter[comboBox1.SelectedIndex].MonikerString);
            device.NewFrame += Device_NewFrame;
            device.Start();
        }




        static readonly CascadeClassifier cascadeClassifier = new CascadeClassifier("haarcascade_frontalface_alt_tree.xml");


        private void Device_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone();
            Image<Bgr, byte> grayImage = new Image<Bgr, byte>(bitmap);
            Rectangle[] rectangles = cascadeClassifier.DetectMultiScale(grayImage, 1.2, 1);
            foreach(Rectangle rectangle in rectangles)
            {
                using(Graphics graphics = Graphics.FromImage(bitmap)) //hier ist der fehler
                {
                    using(Pen pen = new Pen(Color.Red, 1))
                    {
                        graphics.DrawRectangle(pen, rectangle);
                    }
                }
            }
            pictureBox1.Image = bitmap;
        }


        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if(device.IsRunning)
            device.Stop();
        }
    }
}
Computer, Technik, Programmieren, Programmierung, Coding, CSharp, Technologie, CSharp Programmieren, CSharp Programmierung
Was ist daran falsch/ wie geht das C#?

Ich würde gerne das er das bei Button Start die ganze zeit macht + hab ich irgendwelche Fehler?

Code:

    public partial class Form1 : Form
    {
        String attempt = "";


        int first = 0;
        int second = 0;
        int third = 0;
        int fourth = 0;
        int fifth = 0;
        int sixth = 0;
        int seventh = 0;
        int Eighth = 0;
        int ninth = 0;
        int tenth = 0;
        int eleventh = 0;
        int twelfth = 0;
        int thirteenth = 0;
        int cracks = 0;
        public Form1()
        {
            InitializeComponent();
        }


        private void btnstart_Click(object sender, EventArgs e)
        {


            string[] array = new string[66];
            array[0] = "";
            array[1] = "a";
            array[2] = "b";
            array[3] = "c";
            array[4] = "d";
            array[5] = "e";
            array[6] = "f";
            array[7] = "g";
            array[8] = "h";
            array[9] = "i";
            array[10] = "j";
            array[11] = "k";
            array[12] = "l";
            array[13] = "m";
            array[14] = "n";
            array[15] = "o";
            array[16] = "p";
            array[17] = "q";
            array[18] = "r";
            array[19] = "s";
            array[20] = "t";
            array[21] = "u";
            array[22] = "v";
            array[23] = "w";
            array[24] = "x";
            array[25] = "y";
            array[26] = "z";
            array[27] = "A";
            array[28] = "B";
            array[29] = "C";
            array[30] = "D";
            array[31] = "E";
            array[32] = "F";
            array[33] = "G";
            array[34] = "H";
            array[35] = "I";
            array[36] = "J";
            array[37] = "K";
            array[38] = "L";
            array[39] = "M";
            array[40] = "N";
            array[41] = "O";
            array[42] = "P";
            array[43] = "Q";
            array[44] = "R";
            array[45] = "S";
            array[46] = "T";
            array[47] = "U";
            array[48] = "V";
            array[49] = "W";
            array[50] = "X";
            array[51] = "Y";
            array[52] = "Z";
            array[53] = "*";
            array[54] = "!";
            array[56] = "0";
            array[57] = "1";
            array[58] = "2";
            array[59] = "3";
            array[60] = "4";
            array[61] = "5";
            array[62] = "6";
            array[63] = "7";
            array[64] = "8";
            array[65] = "9";




            attempt = array[twelfth] + array[eleventh] + array[tenth] + array[ninth] + array[Eighth] + array[seventh] + array[sixth] + array[fifth] + array[fourth] + array[third] + array[second] + array[first];


            SendKeys.Send(attempt);
            SendKeys.Send("{enter}");
        }


        private void btnstop_Click(object sender, EventArgs e)
        {
            break;
        }
    }
}
Computer, Technik, Programmieren, Programmierung, Code, CSharp, Technologie, CSharp Programmieren, CSharp Programmierung
PHP in Dateien schreiben?

Hallo, ich habe vor, eine Seite zu erstellen, auf welcher man ein pin eingeben muss und dieser überprüft wird ( komme aus C++ ). Das überprüfen ist auch nicht das Problem. Ich wollte es erweitern, indem die falschen pins die eingegeben worden sind in eine text datei auf meinem root geschrieben werden, auf welchem debian 10 installiert ist.

Mein Code sieht wie folgt aus:

form:

<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>LOGIN</title>
</head>
<body>
    <form action="welcome.php" method="POST">
        <h1>LOGIN</h1> <br />
        <p>Bitte geben Sie ihren Pin ein um fortzufahren.</p>
        <input type="text" name="pin"/>
        <input type="submit"/>
        
    </form>
</body>
</html>

und die Überprüfung, usw...

<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>FAF</title>
</head>
<body>
    <?php 
    $pinvar = $_POST["pin"];
    if($pinvar != "1337"){
        echo "Der Code $pinvar ist falsch.";
    }else{
        echo "Willkommen zurück.";
        $handle = fopen("logs.txt", "w");
        fwrite($handle, "$pinvar \n");
    }


    
    ?>
</body>
</html>

Warum schreibt es nicht in die Textdatei ? Was habe ich falsch gemacjh0t

Danke im Voraus

Computer, HTML, Programmieren, Programmierung, CPP, PHP, Webdesign, Webdevelopment, Webentwicklung
C# script ändern?

Und zwar habe ich einen password cracker gemacht aber bisher kann man nur das passwort eingeben und dann dauert es bis es das passwort hat. Wie könnte ich es machen das es z.B das bei einem winrar file macht ?

Code(Konsolenanwendung):

    (hab das meiste weggelöscht, sonst zu groß, ich weiß nicht ob das weggelöschte hier wichtig gewesen wäre)

    
        static void Main(string[] args)
        {
            Console.Write("Password: ");
                String password = Console.ReadLine();
            String attempt = "";

            int first = 0;
            int second = 0;
            int third = 0;
            int fourth = 0;
            int fifth = 0;
            int sixth = 0;
            int seventh = 0;
            int Eighth = 0;
            int ninth = 0;
            int tenth = 0;
            int eleventh = 0;
            int twelfth = 0;
            int thirteenth = 0;
            int cracks = 0;



                attempt = array[twelfth] + array[eleventh] + array[tenth] + array[ninth] +array[Eighth] + array[seventh] + array[sixth] + array[fifth] + array[fourth] + array[third] + array[second] + array[first];


                Console.WriteLine(attempt);
                first++;
                cracks++;
            }
            Console.WriteLine("> Attempts to crack: " + cracks);
            Console.ReadLine();
        }
    }
}
Computer, Technik, Programmieren, Coden, Programmierung, CSharp, Technologie, CSharp Programmieren, CSharp Programmierung
Discord Virus durch Bot?

Hallo zusammen, ich habe mir letztens auf Discord einen Server erstellt und was man halt so macht, noch ein paar Bots eingeladen. Ich habe dazu die Website top.gg, welche als allererste angezeigt wirdwenn man nach Discord Bots sucht, genutzt. Dabei habe ich mir einmal den ProBot, de GambleBot, einen Pokemon Bot namens PokeventureBot glaube ich und den BoxBot geholt. Als ich heute aber von der Schule nach Hause gekommen bin, habe ich gesehen dass "ich" fast jedem meiner Kontakte eine Nachricht geschickt habe, die ungefähr so war: "Hi Bro, check out my new game [hier ein link] the password is 1111". Dummerweise habe ich den Anfängerfehler gemacht und drauf geclickt, dabei lud sich etwas runter. Als ich es aber versuchte zu starten kam nur eine Fehlermeldung und ich konnte nur auf "ok" cliucken. Ich lasse jetzt einmal einen kompletten Systemscan jeweils von Antivira und dazu noch vom Windows Defender machen und habe Discord schon deinstalliert und mein Passwort geändert und die 2Fa- Authifizierung gemacht. Im Internet stand auch das man bei einem infizierten Discord unter app-data und dann bei der Version zusätzliche Dateien finden würd, doch wenn ich diesen Ordner geöffnet habe, war dar nur eine Datei namens ",first-run". Da ich leider noch in der Schule war, haben schon ein paar meiner Freunde auf diesen Link geclickt... In der Hoffnung auf eine schnelle Antwort und schonmal im Vorhinein Danke, Marlon.

Computer, Technik, Virus, Programmierung, bots, Codierung, internet security, Technologie, discord, Spiele und Gaming
Primzahlengenerator: Ist die Funktion, die ich in Python programmiert bereits bekannt?

Im folgenden Python Programm werden alle ungeraden Primzahlen generiert.

Es verwendet die senkrechte "Mittellinie" des Pascalschen Dreiecks. Beispielzahlen, die verwendet werden: 2,6,20,70,252,924,3432,.....

2 \ 3 = 2 -> 3 - 2 = 1 -> Prim
6 \ 5 = 1 -> Prim
20 \ 7 = 6 -> 7 - 6 = 1 -> Prim
70 \ 9 = 7 bzw. 9 - 7 = 2 -> Rest ungleich 1 -> nicht Prim
252 \ 11 = 10 -> 11 - 10 = 1 -> Prim
# Programer: Peter Rasinger, Ferlach, Austria, 2005 - 2021
import math
import decimal
decimal.getcontext().prec = 2500000 #250000000000000000
decimal.getcontext()
def is_prim(a4,d4):
  f4 = a4 % d4
  g4 = d4 - f4
  if f4 == 1 or g4 == 1 and d4 != 1:
    return(1==1)
  else:
    return(1==2)
def calc_prim(f3,g3,h3): #f3 = x over x/2 : x \ 2 == 0 ... and g3 == x / 2 ... 6 over 3 = 20 = 6! / (3! * 3!), 8 over 4 = 70
             #h3 = steps to calulate (impair numbers)
  a3 = f3
  b3 = g3
  c3 = b3 + 1
  if is_prim(a3,c3):
    print(c3)
  for i3 in range(g3 + 2,(h3 * 2) + g3,2):
    r3 = a3 * 4
    s3 = r3 // i3
    a3 = r3 - s3
    b3 = i3
    c3 = b3 + 1
    if is_prim(a3,c3):
      print(c3)
  print(math.trunc((math.log(a3) // math.log(10)) + 1)," max digits used")
calc_prim(252,10,100) #252 = 10! / (5! * 5!) ... check 100 impairs ... startvalues for 11
#calc_prim(924,12,100) #924 = 12! / (6! * 6!) ......................... startvalues for 13
#calc_prim(2,2,5)
Mathematik, Programmierung, Python
Code umschreiben?

Hallo, kann man folgenden Code leicher schreiben? Also es soll die gleiche funktionalität haben nur leicher dargestellt werden.. ist das möglich? Hat jemand tipps oder vorschläge? Danke!

public class MyData

   {

       public void Save(System.Windows.Data.CollectionView items)

       {

           XDocument xdoc = new XDocument();

           XElement xeRoot = new XElement("Data");

           XElement xeSubRoot = new XElement("Rows");

           foreach (var item in items)

           {

               ListViewData lvc = (ListViewData)item;

              XElement xRow = new XElement("Row");

               xRow.Add(new XElement("col1", lvc.Col1));

               xRow.Add(new XElement("col2", lvc.Col2));

               xeSubRoot.Add(xRow);

           }

           xeRoot.Add(xeSubRoot);

           xdoc.Add(xeRoot);

           xdoc.Save("MyData.xml");

       }

       public IEnumerable<object> GetRows()

       {

           List<ListViewData> rows = new List<ListViewData>();

           if (File.Exists("MyData.xml"))

           {

               var rowsFromFile = from c in XDocument.Load(

                           "MyData.xml").Elements(

                           "Data").Elements("Rows").Elements("Row")

                                  select c;

               foreach (var row in rowsFromFile)

               {

                   rows.Add(new ListViewData(row.Element("col1").Value,

                           row.Element("col2").Value));

               }

           }

           return rows;

       }

   }

Programmieren, Anwendung, Programmierung, Code, CSharp, Visual Studio, wpf, Quellcode, WPF-Anwendung
Problem mit messageCollector?

Hallo, ich habe ein Problem.

const msgFilter = (msg) => msg.author.id == message.author.id;
const collector = message.channel.createMessageCollector(msgFilter);
collector.on("collect", (msg) => {
  if (msg.content === "common") {
    collector.stop()

    function getWeightedRandomValue(weightedValues) {
      const random = Math.random();
      let sum = 0;

      for (const value in weightedValues) {
        sum += weightedValues[value];
        if (random <= sum) {
          return value;
        }
      }
    }

    const result = getWeightedRandomValue({
      common: 0.1,
      txp: 0.2,
      ttcoins: 0.2,
      fspins: 0.3,
      thxp: 0.2,
    });
  }
  else if (result === "thxp") {
    const thxp = new MessageEmbed()
      .setColor("#848484")
      .setAuthor("Bot")
      .setTitle("CONGRATULATIONS! YOU WON 1.100 XP")
      .setTimestamp()
    message.channel.send(thxp)

    return Player.updateOne(
      { dcid: message.author.id },
      { inventory: { xp: save.inventory.xp + 1100 } }
    );
  } 

Es wird nichts zur Datenbank hinzugefügt. 😕

Allerdings habe ich das Ganze einmal ohne messageCollector versucht und es hat funktioniert.

Hat jemand eine Lösung? Ich will ungern auf den messageCollector verzichten.

So funktioniert alles:

  function getWeightedRandomValue(weightedValues) {
    const random = Math.random();
    let sum = 0;
  
    for (const value in weightedValues) {
      sum += weightedValues[value];
  
      if (random <= sum) {
        return value;
      }
    }
  }
  
  const result = getWeightedRandomValue({
    commonshinobi: 0.02,
    txp: 0.02,
    ttcoins: 0.4,
    fspins: 0.02,
    thxp: 0.9,
  });
}
else if (result === "thxp") {
  const thxp = new MessageEmbed()
    .setColor("#848484")
    .setAuthor("Bot")
    .setTitle("CONGRATULATIONS! YOU WON 1.100 XP")
    .setTimestamp()
  message.channel.send(thxp)

  return Player.updateOne(
    { dcid: message.author.id },
    { inventory: { xp: save.inventory.xp + 1100 } }
  );
}
Programmieren, JavaScript, Programmierung, Datenbank, Database, MongoDB, discord, Discord.js

Meistgelesene Fragen zum Thema Programmierung