Status.html und FF3.5 hohe Last

Hier finden YaCy User Hilfe wenn was nicht funktioniert oder anders funktioniert als man dachte. Bei offensichtlichen Fehlern diese bitte gleich in die Bugs (http://bugs.yacy.net) eintragen.
Forumsregeln
In diesem Forum geht es um Benutzungsprobleme und Anfragen für Hilfe. Wird dabei ein Bug identifiziert, wird der thread zur Bearbeitung in die Bug-Sektion verschoben. Wer hier also einen Thread eingestellt hat und ihn vermisst, wird ihn sicherlich in der Bug-Sektion wiederfinden.

Status.html und FF3.5 hohe Last

Beitragvon dulcedo » Sa Okt 10, 2009 5:23 am

Diese Seite, wohl das durchlaufende log (das mit dem IE8/Win7 nicht funktioniert) verbraucht auf einem sehr flotten Rechner 25% CPU-Last, pro Fenster. Kann man das irgendwo deaktivieren? Oder natürlich optimieren.
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: Status.html und FF3.5 hohe Last

Beitragvon Vega » Mo Okt 12, 2009 7:41 am

Welches System (OS etc. ?) - Ich kann das hier an meinem ArbeitsPC (WinXP-SP3, alle aktuellen Patches + FF 3.5.3.) nicht reproduzieren.

Gruß,
Thomas
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Status.html und FF3.5 hohe Last

Beitragvon dulcedo » Mo Okt 12, 2009 8:05 am

Windows 7 und Java1.6 64bit, dort tritt auch das Problem mit dem IE auf.
Es reicht aber völlig wenn ich weiss wo ich die Anzeige abschalten kann.
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: Status.html und FF3.5 hohe Last

Beitragvon Orbiter » Mo Okt 12, 2009 10:40 am

abschalten kann man das (noch) nicht, bevor wir in diese Richtung gehen wäre es noch interessant zu wissen ob die Last innerhalb des Browsers (in JavaScript) entsteht, oder in YaCy durch die Abfrage der Nachrichten-Feeds. Diese Information müsste man ganz leicht durch den Profiler mit einem Multi-Dump herausfinden können. Wenn da nichts auffälliges ist, ist es der Browser. Dass sollte sich dann auch über ein 'top' bestätigen lassen.
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Status.html und FF3.5 hohe Last

Beitragvon dulcedo » Mo Okt 12, 2009 11:17 am

Ich habe zwar einen peer lokal laufen, aber es ist egal welchen peer ich im browser steuere, sobald ein Fenster mit Status.html offen ist braucht der Rechner dafür 25% Leistung mehr. Bei 2 offenen dann 50% ...
Es wäre natürlich möglich dass der lokale peer einen Nebeneffekt auf das java-browserlement hat, keine Ahnung. Denke aber eher ein Problem Firefox/Windows7
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: Status.html und FF3.5 hohe Last

Beitragvon Orbiter » Mo Okt 12, 2009 1:17 pm

kann nicht der task Manager von Windows dir sagen welches Programm die Last erzeugt?
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Status.html und FF3.5 hohe Last

Beitragvon dulcedo » Mo Okt 12, 2009 4:22 pm

Im Prozess Firefox, für jedes Fenster mit Status.html 25% last mehr. Höhere Netzaktivität kann ich nicht erkennen.
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: Status.html und FF3.5 hohe Last

Beitragvon Orbiter » Mo Okt 12, 2009 10:17 pm

ok, naja dann sage ich mal was ganz blödes: dann die Seite halt nicht aufrufen. Wenn man das Anzeigen des Logs dort ausschaltbar machen würde, fände ich das schon ein wenig übertrieben. Die Seite erzeugt ja immerhin sicherlich keine Last, wenn da nicht so viel übers Log geht. Du Crawlst ja auch massiv.
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Status.html und FF3.5 hohe Last

Beitragvon dulcedo » Di Okt 13, 2009 10:29 am

Dieser Seitenaufruf ist es. Wenn ich Status.html statisch ohne den iframe aufrufen wird die Last nicht erzeugt. Einzeln so aufgerufen dann schon.
Code: Alles auswählen
http://localhost:8080/rssTerminal.html?set=PEERNEWS,REMOTESEARCH,LOCALSEARCH,REMOTEINDEXING,LOCALINDEXING,INDEXRECEIVE&width=600px&height=180px&maxlines=20&maxwidth=120
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: Status.html und FF3.5 hohe Last

Beitragvon dulcedo » Do Okt 15, 2009 12:03 pm

Code: Alles auswählen
function RSS2Channel(rssxml) {
...
tmpElement = chanElement.getElementsByTagName(properties[i])[0];

meldet beim strenger prüfenden IE8: null oder kein objekt.
Deswegen wird auch dort nichts angezeigt, vielleicht im FF auch Ursache für die hohe Last.
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: Status.html und FF3.5 hohe Last

Beitragvon Lotus » Do Okt 15, 2009 12:15 pm

dulcedo hat geschrieben:das durchlaufende log (das mit dem IE8/Win7 nicht funktioniert)

Notiz an mich:
wahrscheinlich das gleiche Problem wie in 6114 beseitigt wurde. Habe ich aber noch nicht geprüft.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: Status.html und FF3.5 hohe Last

Beitragvon Lotus » Do Okt 15, 2009 6:23 pm

Lotus hat geschrieben:wahrscheinlich das gleiche Problem wie in 6114 beseitigt wurde. Habe ich aber noch nicht geprüft.

Ist es nicht.

chanElement in der Schleife (Codestelle bei dulcedo) ist null, weil
if(chanElement == null) continue;
erzeugt den Fehler beim nächsten Zugriff darauf.

Leider kenne ich keine Debugging-Tools für den IE.
Edit: Ich habe gerade die Tools unter F12 gefunden. Aber ich finde den Fehler trotzdem nicht. Mit scheint es völlig inkompatibel mit IE zu sein. Im Debugger werden jeweils die verfügbaren Methoden der Objekte angezeigt.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: Status.html und FF3.5 hohe Last

Beitragvon dulcedo » Mi Okt 28, 2009 9:06 am

Diese Scriptversion (aus und unter 0.810/05978 ) funtioniert noch unter IE8/win7
FF3.5 funktioniert ohne Lasterhöhung.

Code: Alles auswählen
http://[localhost/ip]:8080/rssTerminal.html?set=PEERNEWS,REMOTESEARCH,LOCALSEARCH,REMOTEINDEXING,LOCALINDEXING,INDEXRECEIVE&width=600px&height=180px&maxlines=20&maxwidth=120
---

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>rss terminal</title>
<style type="text/css">

div#feedbox {
  padding: 0;
  margin: 0;
  background: #fff;
  text-align:left;
  font:9px 'Lucida Console', 'Courier New', monospace;
}

div#feedbox p {
  margin:0px 0;
}
</style>

<script type="text/javascript" src="/js/ajax.js"></script>
<script type="text/javascript" src="/js/rss2.js"></script>
<script type="text/javascript" src="/js/query.js"></script>
<script type="text/javascript">

var lines = new Array();
var maxlines = 20;
var maxwidth = 90;
var maxtime = 10000; // time that should be wasted until everything is scrolled
var minwait = 50; // if this is too short, the CPU will eat all performance
var maxwait = 500;
var scroller = null;
var idleping = null;
var loader = null;
var lastwait = 1000;
var tab = "&nbsp;&nbsp;";
var lastShow = new Date();
var set = "";
var requestCount = 0;

function fillLines() {
alert(maxlines);
  for (var i = 0; i < maxlines + 1; i++) {
  alert(maxlines);http://localhost:8080/Steering.html?shutdown=
    addLine(i + "-123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789-");
    //addLine("");
  }
}

function addLine(line) {
  while (line.length > maxwidth) {
    lines.push(line.substring(0, maxwidth));
    line = tab + line.substring(maxwidth);
  }
  lines.push(line);
  if (lines.length > maxlines) {
    if (scroller != null) {
      window.clearInterval(scroller);
      scroller = null;
    }
    scroller=window.setInterval("scroll()", newwait());
  }
  show();
}

function show() {
  now = new Date();
  if (now.getTime() - lastShow.getTime() < 50) return;
  var doc = document.getElementById("content");
  doc.innerHTML = "";
  for (var i = 0; i < maxlines; i++) {
    if (lines[i]) doc.innerHTML += lines[i] + "<br />";
  }
  lastShow = new Date();
}

function newwait() {
  if (lines.length > maxlines) {
    var time = maxtime / (lines.length - maxlines);
    if (time < minwait) time = minwait;
    if (time > maxwait) time = maxwait;
  } else {
    time = maxwait;
  }
  if (time < lastwait) time = (time +  maxlines * lastwait) / (maxlines + 1);
  lastwait = time;
  return time;
}

function scroll() {
  if (scroller != null) {
    window.clearInterval(scroller);
    scroller = null;
  }
  if (lines.length > maxlines) {
    var factor = (lines.length - maxlines) / maxlines / 10;
    if (factor < 0) factor = 1;
    if (factor > 3) factor = 3;
    for (var i = 0; i < factor; i++) {
      lines.shift();
    }
    show();
    scroller=window.setInterval("scroll()", newwait());
  }
}

function showRSS(RSS) {
  //populate the items
  for (var i=0; i<RSS.items.length; i++) {
    if (RSS.items[i].title != null) {
        if (RSS.items[i].link != null) addLine(RSS.items[i].title + ":" + RSS.items[i].link);
        else addLine(RSS.items[i].title); }
    if (RSS.items[i].description != null) addLine(tab + RSS.items[i].description);
  }
  return true;
}

function idlepingExec() {
  if (lines.length <= maxlines) {
    // feed in some empty lines to make the list appear alive
    addLine("");
  }
}

function load() {
  getRSS("/api/feed.rss?count=80&set=" + set + "&requestCount=" + requestCount + "&time=" + (new Date()).getTime());
  requestCount++;
}

function init() {
  if (query.maxlines) maxlines = query.maxlines;
  if (query.maxwidth) maxwidth = query.maxwidth;
  if (query.maxtime) maxtime = query.maxtime;
  if (query.minwait) minwait = query.minwait;
  if (query.maxwait) maxwait = query.maxwait;
  if (query.width) {
    document.getElementById("feedbox").style.width = query.width;
  }
  if (query.height) {
    document.getElementById("feedbox").style.height = query.height;
  }
  if (query.set) set = query.set;
  if (query.background) {
   document.getElementById("feedbox").style.background = "#" + query.background;
  }
  if (query.color) {
   document.getElementById("feedbox").style.color = "#" + query.color;
  }
  idleping = window.setInterval("idlepingExec()", 17000);
  loader=window.setInterval("load()", 10000);
  load();
}

</script>
</head>

<body onload="self.getURLparameters();init();">
  <div id="feedbox">
      <p id="content"></p>
  </div>
</body>

</html>
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: Status.html und FF3.5 hohe Last

Beitragvon Lotus » Mi Okt 28, 2009 12:49 pm

Die letzen Änderungen waren 5881 (rssTerminal.html) und 5391 (rss2.js). Kann eigentlich nicht sein, dass die anders funktionieren.
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: Status.html und FF3.5 hohe Last

Beitragvon dulcedo » Mi Okt 28, 2009 1:57 pm

Dann muss sich dahinter etwas geändert haben, an der Quelle des feeds, und so korrupte Daten ausgeliefert? Anders kann ich mir das nicht erklären.
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: Status.html und FF3.5 hohe Last

Beitragvon Copro » Mi Jul 21, 2010 9:13 pm

Ich habe mir in dem Thread hier (SVN 6788: IE 'null' is null or not an object in rss2.js) mal angesehen was im IE(8.0) passiert. Wenn es an den Javascript Fehlern liegt warum der Internet Explorer hier soviel Leistung verbrät kann bis zu einem sauberen Fix folgendes asusprobiert werden:

1. Umbenennen der feed.rss in feed.xml - und schon zeigt der IE 8.0 auch wieder Nachrichten an. Y(aCy liefert die feed.xml dann als MIME-Type "text/xml; charset=UTF-8" aus.)
2. Anpassen des Aufrufs getRSS in der load() Funktion von htroot/rssTerminal.html durch Ersetzen von feed.rss durch feed.xml :
Code: Alles auswählen
getRSS("/api/feed.xml?count=80&set=" + set + "&requestCount=" + requestCount + "&time=" + (new Date()).getTime());
Copro
 
Beiträge: 207
Registriert: Do Dez 13, 2007 3:37 am


Zurück zu Fragen und Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast