- Miért nincs szükségem egy darab elektromos rollerre se?
- Jól árasított edzett üvegek Samsung Galaxy A54-hez és POCO X6 PRO 5G -hez
- 1 Kis segítséget kérnék :)
- Így nem kell kidobni a gépet és friss Windows 10-en maradni 2029-ig
- Fogadj örökbe egy szervert, avagy hogyan építsünk otthoni labot I. (az alapok)
-
LOGOUT.hu
Új hozzászólás Aktív témák
-
beleszólok
senior tag
válasz Sk8erPeter #8315 üzenetére
Sokra nem mentek vele
namespace monosandbox
{
public class Hello
{
public static void Main(string[] argv){
int n = 0;
Console.WriteLine (System.IO.Directory.GetCurrentDirectory ());
using (StreamReader sr=File.OpenText("kern.log")) {
String s;
while ((s=sr.ReadLine()) != null) {
n++;
}
}
Console.WriteLine (n);
}
}
}Ennél primitívebb kódot nehéz lenne összehozni.
A StreamReader bufferelésével játszadoztam egy sort, de csak rontani tudtam rajta.
A fenti kód, így ahogy van, picit több, mint 22mp-ig fut - most lemértem.
Ugyanez a feladvány, csak pythonban 3.6mp.f=open("kern.log","r")
n=0
for i in f:
n+=1
print nValamit nagyon trükkösen csinál, mert ha a fenti kód helyett egy ilyet csinálok:
f=open("kern.log","r")
l=f.readlines()
print(len(l))akkor elvileg betölti memóriába az egész fájlt, gyakorlatilag iszonyat gyorsan végig tud menni rajta, még sincs bent minden, mivel a fájl közel akkora, mint a teszteléshez használt virtuális gép memóriája és az elég feltűnő, ha megtöltöm. A readlines() helyett read()-t használva elég szembetűnő a különbség.
(1.6GB a fájl és 2GB-ja van a VM-nek)[ Szerkesztve ]
Tiszavirág: http://youtu.be/YdcsiW0kfso
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!