Jeg er ved at lave et interface mellem min seriel port og mit java-program. I mit interface laver jeg et konstant kald til en metode, der læser fra seriel porten. Det er så at sige en uendelig løkke, jeg har lavet. Jeg vil høre, om det er belastende for systemet at kalde denne metode hele tiden og om der eventuelt er en bedre måde at gøre det på? Her er metoden:
public String readLine() { String line=null; try { line=in.readLine(); System.out.println(line); } catch( IOException e ) { error("readLine " + e ); } readLine();
Når en metode kaldes lægges der nogle parametre (styres af compileren) på den globale stak (ikke ret mange bytes, sikkert i omegnen af 8-16 bytes pr. metode kald).
Det er først når metoden returnerer at disse parametre fjernes fra stakken.
Så hvis ikke du returnerer i din metode (det gør du ikke i den i dit spørgsmål), så vil stakken stille og roligt blive større og større. På et tidspunkt er der ikke mere ram til processen og så kan du sikkert gætte hvad der så vil ske.
Razor's while løkke laver ikke nogle ekstra variable som puttes på en stak. Derfor vil den ikke løbe tør for ram.
OK...tak! Jeg har allerede implementeret en løsning med while(true) med inspiration fra razor. Så razor, du får point!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.