2014-05-05 01:23:17
HrPopCnt, czyli dostałem Haswella

Dopiero teraz dociera do mnie, ile fajnych bajerów tkwi w moim lunchboxie, a jednym z nich jest instrukcja POPCNT obsługiwana przez Core i3-4130T. A co robi ta instrukcja? Zlicza ilość zapalonych bitów w danym argumencie.

2014-03-23 22:45:53
Fujitsu Esprimo Q520

Fujitsu Esprimo Q520 to niewielki (18,5cm x 18,8cm x 5,4cm), ale w pełni wyposażony komputer stacjonarny. Wynalazkiem zainteresowałem się po tym, jak w pracy znalazłem takowy na chodzie i dane mi było podłączyć go pod miernik prądu i pobawić się nim chwilę. Od razu zakochałem się i odliczałem dni do wypłaty tym bardziej, że od jakiegoś czasu i tak nosiłem się z zamiarem wymiany Atomicy na coś mocniejszego ;)

W zasadzie to dziwię się, że produkt jest tak mało popularny w naszym kraju. Rozumiem, że nie jest "mejd in czajna" i m. in. przez to swoje kosztuje, ale urządzenie jest naprawdę wysokiej jakości i warto chociaż przyjrzeć się jemu.

2013-09-22 00:25:39
XP i 100% użycia CPU przez svchost.exe

Od jakiegoś czasu zdarza się, że WinXP, nawet gołe po załadowaniu wszystkich trzech ServicePacków, mocno spowalnia krótko po uruchomieniu. Menedżer zadań pokazuje zaś, że proces "svchost.exe" wykorzystuje cały rdzeń procesora. Jeżeli nie jest to jakaś infekcja lub zła konfiguracja, to winnym może być Windows Update.

Update 11.11.2016: wersja dla Windows 7, 8 i 8.1 jest dostępna.

2011-10-17 11:27:40
zlibsuballoc - lepsze zarządzanie pamięcią dla biblioteki zlib

Drobnica przygotowana na potrzeby Hellcore Mailera i paru innych moich projektów.

Problem jest błahy - zlib, rozpoczynając (de)kompresję, alokuje pewną ilość pamięci i dealokuje ją, gdy skończy. Pomnożyć to razy kilka tysięcy i wydajnościowa katastrofa gotowa. zlibsuballoc ma za zadanie tej katastrofie jeśli nie zapobiec, to przynajmniej zredukować ją do akceptowalnego poziomu, bez wpływania na cały program.

2011-09-26 13:26:08
Schowek - ej, oni go w Viście naprawili!

I ja to mówię poważnie. Nie mówi się o tym głośno, ba, nawet na oficjalnej liście nowości w Win32 API dla Visty nie ma o tym napisane, więc nie wszyscy o tym wiedzą. A chodzi oczywiście o zakleszczanie się jednego lub więcej programów w sytuacji, gdy jeden z programów monitorujących schowek (np. fikuśny edytor tekstowy) najzwyczajniej zawiesi się. Plaga a'la czasy Win98, gdy jeden program mógł wyłożyć cały system do góry nogami, ma się całkiem nieźle nawet pod Windows 7, ale od Visty w górę wreszcie zdecydowali się coś z tym zrobić. Tylko dlaczego ludzie dowiadują się o tym przypadkiem - zakładając że w ogóle?

2010-10-02 21:32:25
JPEGFast - szybkie wczytywanie JPEGów w Delphi

This article is also available in English language

Jak pisałem apropos moich "badań", dostępna jest biblioteka szybko dekompresująca JPEGi (w oparciu o instrukcje SSE/SSE2). Ponieważ dopiero od Delphi 7 wbudowany asembler zna instrukcje SSE/SSE2, opakowałem pierwotny kod w bibliotekę DLL i upubliczniłem dwie funkcje, dzięki czemu skorzystać można nie tylko mając Delphi 7 lub nowsze. I w zasadzie nie tylko Delphi, bo różne VC++ i inne cuda też mogą z biblioteki skorzystać.

Na marginesie, to na Branchware pojawiły się zaktualizowane wersje komponentu TSysIcon i klasy TPixelTransformer.

2010-09-28 12:23:42
Risercz okołograficzny

Z okazji padniętej grafiki w giercpudle, wieczorami nie mam specjalnie co robić - a co wieczór zamęczać znajomych to ja jednak nie umiem. Zatęskniwszy straszliwie za czasami, gdy szedłem spać nad ranem (lub wręcz rano) po nocy spędzonej na szeroko pojętym rozwijaniu swojej wiedzy, wróciłem do tego, co mnie zawsze rajcowało, czyli przetwarzania obrazów 2D w Delphi -- z naciskiem na dużą wydajność. W tym odcinku - skalowanie z wygładzaniem oraz szybkie (powered by SSE) ładowanie JPEGów.

2009-11-17 07:52:03
DualCoreSort

Nie jest to żaden nowy algorytm ani nowe informatyczne odkrycie, a jedynie przykład, jak, mając dwa logiczne procesory i dwa proste algorytmy sprawić, by zajmująca najwięcej czasu operacja wykonywała się szybciej. O ile prezentuję tu przykład sortowania dwoma rdzeniami, to spokojnie można to rozbić na większą liczbę rdzeni. Motywacją do tego wpisu (i kodu) było to, że "uwielordzeniowanie" programów - nawet, a może raczej: głównie - w środowiskach RAD jest uznawane za jakąś alchemię. Wiele osób po prostu nie wie "co to jest" i "jak to się robi" (swoją drogą, to rozbawiła mnie prośba jednego kodera, by twórcy jakiejś biblioteki zoptymalizowali jedną, maluteńką - kilkadziesiąt instrukcji x86 - funkcyjkę do korzystania z wielu rdzeni). Może po tym wpisie niektórym się rozjaśni.

2009-11-02 10:12:30
GrayForm

This article is also available in english language

Kiedyś na pl.comp.lang.delphi pojawił się wątek, w którym pytacz chciał wyróżnić niedostępne okienka poprzez wyszarzenie ich. Padło m. in. rozwiązanie z Alpha Blendingiem - jeśli ma się Delphi 7, to nawet da się to szybko zaimplementować, ale jest to szalenie nieefektywne. Teraz, dla odmiany, napisałem to po swojemu - i działa szybko, nie wymaga dużo pamięci, Windows 2000 ani Delphi 7 (lub nowszych). Działąjący moduł GrayForm.pas wrzuciłem na BranchWare, kod jest na licencji BSD. W module zademonstrowałem w jaki sposób szybko przetwarzać bitmapy - GrayForm potrzebuje ~55ms na samą konwersję bitmapy 24bpp o wymiarach 1920x1200 na odcienie szarości (bez stosowania assemblera) - i to na Atomie 330. Dla bitmap spaletyzowanych wykonuje to samo w czasie prawie że rzeczywistym (modyfikowanie samej palety).

2009-10-23 15:43:45
Powolne Shell_NotifyIcon

Jeżeli komuś zdarzy się, że wywołanie funkcji Shell_NotifyIcon (tworzącej tray'ową ikonkę) zajmuje kilka (2-4) sekund, niech nie szuka winnego w swoim kodzie czy używanej grafice. Winny jest "Pasek Języka".

« Późniejsze wpisy | Wcześniejsze wpisy »

Powered by:
Hellcore Mailer - polski program pocztowyOpera Web BrowserFreeBSD - The Power to Serve!Slackware
RSSy:
Sidekick:
Projekty:
O autorze:
Zobacz:
Kategorie:
Archiwum:
Szukaj: