2016-03-30 7 views
2

Ich benutze Pistons Bild Kiste, um die Abmessungen und die Farbe jedes Pixels eines JPEG-Bildes zu lesen, aber das Programm zu kompilieren ist sehr langsam.Kompilieren eines Programms mit Pistons Bildkiste ist langsam

Hier ist mein Beispielprogramm:

extern crate image; 

fn main() { 
    let img = image::open("example.jpg"); 
} 

Kompilieren dieser Fracht bauen oder Fracht bauen --release dauert mindestens 13 Sekunden jedes Mal, indem ich den Quellcode geändert haben!

Ausgabe von rustc --Version: rustc 1.7.0 (a5d1e7a59 2016-02-29)

Ausgabe von Ladung --Version: cargo 0.8.0-nightly (28a0cbb 2016-01-17)

Ich bin mit Ubuntu 15.10.

+0

Initial Kompilierung für Bild und seine deps, 2: 15.20elapsed, Zeit neu kompilieren für nur die Änderung, dass einfache lib.rs Datei, 0: 22.58elapsed. In der Tat nicht so gut, und das ist mit einem Debug-Build! Aber ich habe eine Idee, wie man es verbessert .. – bluss

+3

[PR'd] (https://github.com/PistonDevelopers/image/pull/518), um dieses spezielle Problem zu beheben .. – bluss

+0

@bluss Ich hoffe, Sie schreiben eine Antwort Beschreibung des Problems und des Fixes zusätzlich zu Ihrer Commit-Nachricht ;-) – Shepmaster

Antwort

2

Sie machen eine lokale innere Kiste und platzieren extern crate image darin. Solange sich die innere Kiste nicht ändert, wird die Zusammenstellung der Wurzelkiste schnell (2 Sekunden).

root/Cargo.toml

[dependencies] 
wrapper = { path = "wrapper" } 

root/src/main.rs

extern crate wrapper; 

fn main() { 
    let _img = wrapper::open(); 
} 

root/Wrapper/Cargo.toml

[dependencies] 
image = "*" 

root/Wrapper/src/lib.rs

extern crate image; 

pub use image::{ImageResult, DynamicImage}; 

pub fn open() -> ImageResult<DynamicImage> { 
    image::open("example.jpg") 
} 
1

Wir arbeiten ständig daran, die Geschwindigkeit des Compilers zu verbessern, aber einige Kisten sind langsamer zu kompilieren als andere. Ich weiß nicht viel über diese spezielle Kiste, aber das könnte gerade jetzt der Fall sein.

Verwandte Themen