-
IT café
Új hozzászólás Aktív témák
-
Karma
félisten
válasz beleszólok #8299 üzenetére
Az lehet a kiváltó ok, hogy tévesen vontál le egy következtetést pár hozzászólással ezelőtt: a solution nem a projekt megfelelője más környezetekből.
Visual Studioban (és itt is) a projekt a legkisebb fordítható egység, aminek a kimenete projekttípustól függően egy DLL, futtatható fájl, csomag, stb. Vagy más szóval egy modul, Pythonban meg kb. a package felel meg ennek, csak komplexebb.
A solution ilyen projekteket fog össze, és lehetővé teszi a kereszthivatkozásokat közöttük. Ezt meg máshol workspace-nek szokták hívni.
A regexes példádnál nem a solution, hanem a C# projekt hiányzott - enélkül nem tudja az IDE, melyek framework verziót húzza be és mi a kimenet, inkább nem is csinált semmit.
Azt viszont nem tudom, miért nincsenek nevek a tabokon. Xamarin Studio alatt még nem volt ilyen bugom.
[ Szerkesztve ]
“All nothings are not equal.”
-
martonx
veterán
válasz beleszólok #8299 üzenetére
Én Visual Studio-t használok, ott nem tapasztaltam ilyen problémát. Ebben nem tudok tanácsot adni.
Én kérek elnézést!
-
bigbuda
aktív tag
Sziasztok!
Kérdésem az lenne:
PHP-ba kellene egy combobox, aminek elemei egy adatbázisból lennének lehívva. De a combobox-ba kézzel is be lehetne írni és ha a beírt elem még nincs az elemek között, akkor úgy is el lehet menteni és a beírt elem eltárolódik az adatbázisban, tehát a következő használatkor már ott lesz alapjáraton a választhatók között..
Ezt hogyan lehetne megcsinálni?
-
beleszólok
senior tag
Na ettől kezdve végképp nem értem a dolgot, mert ugyanakkor van benne workspace is.
Számomra elég fura az egész egyelőre.Az üresen maradó tab linuxos, talán ubuntus bug lehet, mert szöveges panaszt egyet vagy kettőt találtam, screenshotot meg csak egy unity-s példányt.
Említettek valami icairo2 bugot, hogy az okozhatja, de alaposabban nem néztem utána.Tiszavirág: http://youtu.be/YdcsiW0kfso
-
martonx
veterán
válasz beleszólok #8304 üzenetére
Szerintem kevered a namespace-t és a workspace-t.
Én kérek elnézést!
-
beleszólok
senior tag
válasz martonx #8306 üzenetére
Nem, valamelyik menüben kifejezetten workspace szerepelt. Eredetileg úgy akartam használni, hogy nem volt "solution", mert a neve alapján arra gondoltam, hogy az valamiféle bugtracking eszköz lehet
Ezt látszott megerősíteni az a workspace szó valahol.De ettől függetlenül érthetetlen dolognak tartom a duplázott könyvtárnevet. Szóval ezt még emészteni kell.
Tiszavirág: http://youtu.be/YdcsiW0kfso
-
beleszólok
senior tag
Korai volt az örömöm.
Ugyanazt a file-t (cca 7millió sor), pythonból kb. 1.5mp alatt olvasom végig és számolom meg, miután egyszer valamivel végigolvastattam, monoból valamiért kb. 20-30mp ugyanennek a feladványnak a futásideje.
Fura... lehet, hogy a múltkor mellényúltam, amikor úgy tűnt, hozza a python sebességét a C#?Tiszavirág: http://youtu.be/YdcsiW0kfso
-
Karma
félisten
válasz beleszólok #8312 üzenetére
Ennyi információval nem sokat lehet mondani rá Az ördög valószínűleg a részletekben van, és ki lehetne mérni, mégis hol veszik el ennyi idő.
“All nothings are not equal.”
-
beleszólok
senior tag
Persze, ez nem is kérdés volt, csak amolyan blog-jellegű panasz
Anno méricskéltem és egészen vad dolgokat találtam.
Pl. hogy python + egy bizonyos regexp illesztése valamennyi sorra, jóval gyorsabb, mintha ugyanezt C-ben a perl RE könyvtárat használva csinálom.
Gyakorlatilag az adott kifejezéssel a python volt a leggyorsabb valamennyi kipróbált nyelv közül (python, java, C, ruby stb. A mono akkor kimaradt)
Aztán persze kiderült az is, hogy ha a regexp végéről lehagyom a ".*$" mintát, akkor máris nem ennyire egyértelmű a python (cPython) előnye, de összességében még nem találtam olyan eszközt, ami alkalmas lenne szövegfeldolgozásra és elég gyors is ahhoz, hogy több millió soros logokat gyorsan fel tudjak vele dolgozni.
Nemrég belebotlottam ilyenekbe, mint erlang, haskell, rövid ideig azt hittem, hogy ők hozzák az igazi megoldást, de utóbb kiderült, hogy a meglévő python kódom a feldolgozással együtt is gyorsabb, mint az említett, funkcionális nyelveken készített sorszámláló ("wc -l" klón)Tiszavirág: http://youtu.be/YdcsiW0kfso
-
Sk8erPeter
nagyúr
válasz beleszólok #8314 üzenetére
Mondjuk ha a "blog-jellegű panasz" valamilyen kódot is tartalmazna, hogy miként is működtél, akkor lehet, hogy lehetne rá érdemben is reagálni, és esetleg jobb módszert mutatni. Amivel a panasz esetleg enyhíthető.
Vagy nem, de ez eddig még nem derült ki.Sk8erPeter
-
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
-
veterán
válasz beleszólok #8316 üzenetére
és ha a while ciklusban nem adnál értéket egy stringnek?
https://play.google.com/store/apps/details?id=com.lovemap.lovemapandroid
-
beleszólok
senior tag
válasz Oppenheimer #8317 üzenetére
(értelmetlennek tartom ugyan, de kipróbáltam)
Semmi változás.Tiszavirág: http://youtu.be/YdcsiW0kfso
-
martonx
veterán
válasz beleszólok #8316 üzenetére
ha már próblgatunk, akkor ezt próbáld még ki C#-al, a komplett using-os rész helyett:
foreach (var line in File.ReadLines("kern.log"))
{
n++;
}Így legalább már pont olyan szép, mint python-nal
És amikor ezzel megvagy, akkor javaslom még a foreach helyett a parallel.foreach-et kipróbálni. Erre gondoltam eredetileg, amikor mondtam, hogy C#-al nagyon egyszerű több processzor magot kihasználni.
Én anno C#-al (mondjuk nem mono-val, hanem rendes C#-al windows-on) 40Gb-os XML-eket parsoltam, és dolgoztam fel, töltöttem db-be pár órás futásidővel (igaziból a db-be töltés volt a szűk keresztmetszet, pontosabban a db mögötti storage, mivel a DB szerver 96 magos, alig terhelt gép volt).
Én kérek elnézést!
-
martonx
veterán
válasz beleszólok #8320 üzenetére
Egyébként nekem gyanús, hogy vagy a Python csal (mondjuk a fordító figyeli, hogy csinálsz-e bármit a beolvasott adattal, és ha nem akkor valahogy eleve csak végigpörgeti a file-t, érdemi beolvasás helyett), vagy a C# mono-val nagyon nincs optimalizálva. Vagy mindkettő. Elvileg közel nulla különbségnek kellene lennie pusztán a file megnyitásakor, végigpörgetésekor a két nyelv között.
Nekem egyébként kicsit gyanús, hogy a Python az 1.6Gb-os file-t 3.6 másodperc alatt nyálazza végig, ez kicsit mintha túl kevés lenne.
Én kérek elnézést!
-
beleszólok
senior tag
válasz martonx #8319 üzenetére
Kipróbáltam: egy szálon ugyanaz, több szálon meg nem működőképes úgy, ahogy elképzeltem (a foreach helyett Parallel.Foreach ...), mert úgy fest, ilyenkor számolni sem tud, a doksiban talált példa alapján a a ForEach második paramétereként átadott lambda fv. úgy tűnik nem képes szálbiztosan kezelni a változókat.
Illetve ez csak feltételezés, az viszont biztos, hogy a fájl eredeti méreténél néggyel kevesebb sort számolt meg.
Az csak mellékes, hogy mindezt még lassabban is csinálta, mint az egy szálon futó változat.
(mindezt linux alatt, mono-val, virtualbox-ban, szóval nem állítom, hogy ez kizárólag a C# hibája)Tiszavirág: http://youtu.be/YdcsiW0kfso
-
beleszólok
senior tag
válasz martonx #8321 üzenetére
Végigpörgeti, különben nem tudnám pl. a sorok hosszának átlagát megszámolni.
(nekem is ez volt gyanús, ezért beleraktam egy átlagszámítást, hogy biztosan szüksége legyen a beolvasott adatokra)
Az a 3mp nem lehetetlen: a C-ben íródott wc (alias Word Count) ennél gyorsabb, kb. 1.5mp alatt olvassa végig második nekifutásra (ekkor már a fájl egy része cache-ben van)
A python nagy része mögött meg C-ben írt programok vannak.
Az egyetlen, de súlyos szépséghibája, hogy a cPython-ban van egy ú.n. GIL, ami miatt a többszálú működésnek csak akkor van értelme, ha a szálak I/O műveletet végeznek, mert ha mind CPU-t használ, akkor egymásra várnak állandóan. (és látszik is, hogy csak az egyik magon van terhelés)[ Szerkesztve ]
Tiszavirág: http://youtu.be/YdcsiW0kfso
-
martonx
veterán
válasz beleszólok #8323 üzenetére
Hát, ez esetben nagyon gáz a C# 22mp-es olvasás ideje.
Én kérek elnézést!
-
Jim Tonic
nagyúr
Sziasztok!
Tud valaki jó szoftver/hardver kombót ajánlani soros kommunikációhoz (TTL, UART, I2C)? Kellene valami debugger megoldás windows alá, mert van egy vödör szenzorom, amikről semmi doksim nincs. Ebayen találtam usb to serial adaptereket normális áron, viszont nem tudom, mennyire használhatók ezek pl. a RealTermmel. Amit a szoftver ajánl, az horror áron van. Esetleg van valakinek valamilyen bevált párosa?
[ Szerkesztve ]
Alcohol & calculus don't mix. Never drink & derive.
-
rongyi
aktív tag
Sziasztok!
Tudtok mondani olyan programot vagy esetleg scriptet, ami azt csinálja, hogy adott mappába, ha letöltődött adott file, akkor azt átmásolja egy hálózaton lévő meghajtó adott mappájába? Remélem jó helyre írtam és érthetően Válaszokat előre is köszönöm!
-
sztanozs
veterán
válasz beleszólok #8320 üzenetére
Debug üzemmódban teszteled a c#-ot sebességre, vagy Release-ben?
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Jim Tonic
nagyúr
Csinálsz egy szöveges fájlt. Annak legyen ez a tartalma, természetesen a helyes paraméterekkel:
move /y .\forraskonyvtar\*.* .\celkonyvtar\
A kiterjesztését txt-ről bat-ra változtatod, majd beállítod a feladatkezelőben, hogy fusson le, x időközönként. Azt nem tudom, mit csinál a folyamatban levő fájlokkal, de mivel elvileg azokat fogja a kliens, így a task kifut hibával, és annyi.Alcohol & calculus don't mix. Never drink & derive.
-
válasz Jim Tonic #8325 üzenetére
[link] szerintem a soros portok jobbak, mint az usb konverterek. az usb konverterekből nekem van olyan, ami hibázik, meg olyan is, ami viszonylag stabil.
a málnaboltokban árulnak nem szabványos feszültségű usb konvertert.[link]
szerintem a programmal nem lesz probléma, sima usb-serial támogatás kell hozzá.
[ Szerkesztve ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
Jim Tonic
nagyúr
válasz bambano #8333 üzenetére
Ilyen kábeleket rendeltem már korábban Ebayről, pont ilyeneket. Igaz, negyedáron.
A gond az, hogy most I2C-hez kellene, és ezek azt nem tudják.
Igen, soros portról jobb dolgozni, így van. Sajnos nekem ez most pont azért kell, mert van egy céges laptopom, amit magammal viszek, mikor hétvégén meglátogatjuk a szülőket, és abba nem tudok ilyet rakni.Alcohol & calculus don't mix. Never drink & derive.
-
Aquiles
csendes tag
Sziasztok!
Egy olyan keresőt szeretnék létrehozni, ami a lenti oldalhoz hasonlóan jeleníti meg a találatokat, ha valaki elkezd bele írni valamit, adatbázisból, ami jelenleg egy excel fájlban található.
Ötleteket várnék milyen programmal kellene/lehetne ezt így kivitelezni? Másik kérdés: hogy hívják ezt az objektumot ebben a formában?
Konkrétan egy olyan beviteli mezőt szeretnék létrehozni, amibe hogyha beírjuk az adatot, kiírja a lehetséges találatokat egy adatbázisból.
Az oldalon szereplő mező funkciót szeretném rekonstruálni a saját adatbázisommal: http://cpuboss.com/compare-cpus
Köszi előre is!
Üdv.
-
beleszólok
senior tag
Github... van rá valami lehetőség, hogy az ember kapcsolatba lépjen egy repo gazdájával anélkül, hogy hibát jelentene? (A pull request nem tudom mi, de gondolom, az sem erre való)
Tiszavirág: http://youtu.be/YdcsiW0kfso
-
beleszólok
senior tag
válasz beleszólok #8338 üzenetére
Nincs.
Nem én vagyok az oka, hogy nem találtam: volt lehetőség privát üzeneteket küldeni, de megszüntették.
E-mail meg csak az látszik, amit a user külön megad, amivel regisztrált, az nem jelenik meg sehol.Tiszavirág: http://youtu.be/YdcsiW0kfso
-
Jim-Y
veterán
válasz beleszólok #8339 üzenetére
Ha rámész a user nevére/profiljára, ott megtalálod az email címét. Vagy még sokszor van ilyen, hogy CONTRIBUTING.md, ott is találhatsz még contactot, esetleg ha van WIKI page-e a reponak ott is érdemes szétnézni.
A PR (pull request) azt jelenti, hogy ha átírsz valamit a forrásban, akkor egy PR készül, amit az eredeti gazda elfogadhat, mergelhet a kódba, így a változtatásod élesben is elérhető lesz mindenki számára, ha elfogadják.
Ez utóbbit jobban is le lehet írni, többféle képp is csinálhatod, amire most nem térek ki, a lényege úgyis mindnek ez.
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz beleszólok #8339 üzenetére
Egy - nem túl atombiztos - lehetőség van, mégpedig az, hogy checkoutolod a repository-ját, és a commit logokban a szerzőnél/commitolónál megnézed az e-mail-címét a felhasználóneve mellett.
Ez persze simán lehet nemlétező is (ha ilyet adott meg), vagy olyan, amit ritkán vagy szinte egyáltalán nem használ, de esélyes az is, hogy pont az az e-mail-cím lesz itt megtalálható, amire neked szükséged van. Egy próbát mindenképpen megér.(#8340) Jim-Y:
"Ha rámész a user nevére/profiljára, ott megtalálod az email címét"
Ez csak akkor igaz, ha a felhasználó a https://github.com/settings/profile oldalon kitöltötte az "Email (will be public)" mezőt. Egyébként nem látszik az e-mail-cím, és ez a gyakoribb, hogy ezt a mezőt nem töltik ki.[ Szerkesztve ]
Sk8erPeter
-
-
beleszólok
senior tag
válasz Sk8erPeter #8341 üzenetére
Esetemben ez nem játszik. Egyetlen dokumentum van csak a repoban.
Tiszavirág: http://youtu.be/YdcsiW0kfso
-
sztanozs
veterán
válasz beleszólok #8342 üzenetére
Írhatsz esetleg a pull request-be is egy hosszú kommentet is - ha azt nem olvassa el, akkor hiába is akarod keresni
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
válasz beleszólok #8312 üzenetére
Python unicode-ot olvas alapból?
A .NET verziót hányszor futtattad? (Első alkalommal még fordul a kód [üres fájlt be kell küldeni először].)
Mivel mérted az időket? -
beleszólok
senior tag
válasz Peter Kiss #8345 üzenetére
Python nem olvas unicode-ot (tudtommal), de ebben az esetben nincs is jelentősége, mivel egy alapjában véve ASCII, max. Latin1 kódkészletű logon kellett végigmászni.
Ha a C#/Java/stb. ráerőszakolja a unicode-ot és ettől lassú valamennyi, az számomra közömbös, nem fogom a többihez lassítani a pythont csak azért, hogy a tesztben esetleg azonos feltételekkel induljanak.Nem csak a .net verziót, hanem valamennyi kipróbált változatot sokszor futtattam, részben mert virtuális gépen fut, részben mert az op.rendszer cache, illetve a futtató rendszerek saját bufferelési módszerei is befolyásolhatják az eredményt. Az eltérés következetesen megmaradt.
Mérni, amikor pontosabban akartam, akkor a programon belülről, induláskor tároltam az időt, befejezéskor is és a kettőt egymásból kivonva számoltam ki, hogy mennyi ideig futott, jelentősebb eltéréseknél meg csak kívülről, a linux time parancsával.
Mielőtt még beleesnél abba a hibába, hogy "de az interpreter/vm indításának idejét is hozzámérem", jelezném, hogy nem egy-két másodperces eltérésekről van szó. A futtató környezet indítása nem több 1-2 mp-nél még a leglassúbb rendszer esetében sem, a fordítást meg max. a python esetében mérem bele, mivel az mindig forráskódból fut, a java, C#, haskell, erlang elvileg minimum bájtkódból indulnak, a haskell ráadásul futtatható binárist készít, elvben gépikódra fordítva... (és eddig az tűnt a leglassabbnak)Tiszavirág: http://youtu.be/YdcsiW0kfso
-
válasz beleszólok #8346 üzenetére
Hasonló fájllal 6-7 másodpercet tudok kihozni belőle, ami figyelembe véve a magasabb absztrakciót egyáltalán nem rossz.
-
beleszólok
senior tag
válasz Peter Kiss #8347 üzenetére
Java-val nekem is annyi. Pythonban meg három. (mindkettő csak olvasás. Pythonnál alig villan a hdd led, java futtatáskor folyamatosan világít)
A #8316-ban ott a forrás, azzal mennyi ideig fut?
Ja! Az ugye tiszta, hogy nálam nem windows-on fut, hanem linuxon, mono segítségével?[ Szerkesztve ]
Tiszavirág: http://youtu.be/YdcsiW0kfso
-
beleszólok
senior tag
válasz beleszólok #8348 üzenetére
Közben kipróbáltam, hogy a linuxon fordított .exe-t átvittem windows-ra a loggal együtt. Ott már csak 8mp.
Tiszavirág: http://youtu.be/YdcsiW0kfso
-
Jester01
veterán
válasz beleszólok #8349 üzenetére
A háttérben zajló karakterkészlet konverzió és memóriaműveletek lassítják a dolgot, ezek elkerülhetők némi kézi mókolással:
public static void Main(string[] argv)
{
int n = 0;
byte[] buf = new byte[4096];
using (Stream s = File.OpenRead("kern.log"))
{
int got;
while ((got = s.Read(buf, 0, buf.Length)) > 0)
{
int pos = 0;
while (pos < got && (pos = Array.IndexOf(buf, (byte)10, pos)) >= 0)
{
n += 1;
pos += 1;
}
}
}
Console.WriteLine (n);
}Ez nálam nagyjából fele olyan gyors mint a python változat.
Többszálúsítva sikerül beérni sebességben.Jester
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Milyen TV-t vegyek?
- Ingyenes vagy akciós szoftverek
- Kerékpárosok, bringások ide!
- Hálózati / IP kamera
- PlayStation 5
- Futás, futópályák
- Anglia - élmények, tapasztalatok
- Okos Otthon / Smart Home
- Amlogic S905, S912 processzoros készülékek
- Megérkezett a Razer új csúcsegere, a Viper V3 Pro
- További aktív témák...