hallo,
ich hab mir ein kleines testprogramm geschrieben mit dem ich screenshots mache und schaue wieviele ich in einer sec auslesen kann... (hab hier ne auflösung von 1280x1024)
(im endeffekt soll ein kleines programm entstehen, das auf zb youtube ein video grabbt und einen filter drüber laufen lässt und selbiges dann in einem fenster darstellt - funktioniert so weit so gut... aber nur mit 4 bilder/sec)
komme auf 7 scans/s, was meines erachtens etwas wenig ist (hoffte eher auf etwas zwischen 30 und 60)
a) kann man das irgendwie beschleunigen?
b) mache ich das zu umständlich?
nur... wenn ich schon mal mit 7 sps anfange dann komm ich da recht weit nach unten (ich schätze mal dass nach meiner verarbeitung grad mal noch 3-4 übrigbleiben)
ich hab mir ein kleines testprogramm geschrieben mit dem ich screenshots mache und schaue wieviele ich in einer sec auslesen kann... (hab hier ne auflösung von 1280x1024)
(im endeffekt soll ein kleines programm entstehen, das auf zb youtube ein video grabbt und einen filter drüber laufen lässt und selbiges dann in einem fenster darstellt - funktioniert so weit so gut... aber nur mit 4 bilder/sec)
komme auf 7 scans/s, was meines erachtens etwas wenig ist (hoffte eher auf etwas zwischen 30 und 60)
a) kann man das irgendwie beschleunigen?
b) mache ich das zu umständlich?
nur... wenn ich schon mal mit 7 sps anfange dann komm ich da recht weit nach unten (ich schätze mal dass nach meiner verarbeitung grad mal noch 3-4 übrigbleiben)
Java:
import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
public class Benchmark {
public static void main(String[] args) {
Dimension screenSize = Toolkit.getDefaultToolkit()
.getScreenSize();
System.out.println(screenSize);
Robot r = null;
try {
r = new Robot();
} catch (AWTException e) {
e.printStackTrace();
System.exit(-1);
}
Rectangle screen = new Rectangle((int) screenSize.getWidth(), (int) screenSize
.getHeight());
long start = System.currentTimeMillis();
long passed = 0;
int sps = 0;
while (true) {
while (passed < 1000) {
BufferedImage window = r.createScreenCapture(screen);
passed += System.currentTimeMillis() - start;
sps++;
}
System.out.println(String.format("scans/s: " + sps));
passed = 0;
sps = 0;
start = System.currentTimeMillis();
}
}
}
Zuletzt bearbeitet: