{"41800":{"id":41800,"votes":0,"views":0,"text":"I temat chyba mamy zamkni\u0119ty;) btw. co do optymalizacji to w przypadku napisania optymalnego kodu pod wzgl\u0119dem cache optymalizacja cz\u0119sto pogarsza dzia\u0142anie, problem jest zwykle najbardziej widoczny z procesorami z hyperthread.","html":"
I temat chyba mamy zamkni\u0119ty;) btw. co do optymalizacji to w przypadku napisania optymalnego kodu pod wzgl\u0119dem cache optymalizacja cz\u0119sto pogarsza dzia\u0142anie, problem jest zwykle najbardziej widoczny z procesorami z hyperthread.<\/p>\n","parent_id":41799,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41799#comment-41800","created_at":"2019-02-10T09:13:30+01:00","updated_at":"2019-02-10T09:13:30+01:00","comments":[],"user":{"id":52045,"name":"xxx_xx_x","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5c\/5c5ffd80b4272.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6ImFqNjB6KzRDb1hzSTFIREErR1RNVkE9PSIsInZhbHVlIjoiT2FxTXBUaDFzRjVzRnJvdjBkTU5MZUFjQ29ESzgyQ0hqeCs1VDdtcitQSkptSElDUjcxdGZpajhrVlRCUDhnUSIsIm1hYyI6ImU1YjU1NGM0NTE4NjZlZmNiNTA0Y2ViMmU3ZGZkNTFiYzQ2Yzg5MGIzN2U1MzMwM2ZlOWQ5MDRkNjRlNTZlYTciLCJ0YWciOiIifQ==","deleted_at":null},"41808":{"id":41808,"votes":0,"views":0,"text":"My\u015bl\u0119, \u017ce uzyska\u0142e\u015b du\u017co lepsze rezultaty (wi\u0119ksz\u0105 r\u00f3\u017cnic\u0119 na korzy\u015b\u0107 swojego rozwi\u0105zania) g\u0142\u00f3wnie dlatego, \u017ce testy przeprowadzi\u0142e\u015b na wsp\u00f3\u0142czesnym sprz\u0119cie, z lepszym CPU. Bo przecie\u017c **FPC** potrafi generowa\u0107 ca\u0142kiem niez\u0142y kod wynikowy, a sam **Free Pascal** jest w \u015bcis\u0142ej czo\u0142\u00f3wce najbardziej energooszcz\u0119dnych j\u0119zyk\u00f3w.\r\n\r\nW razie czego mam jeszcze jeden algorytm do zoptymalizowania \u2013 kopiowanie obszaru jednej bitmapy do drugiej z uwzgl\u0119dnieniem skalowania. Obecnie robi\u0119 to po\u015brednio za pomoc\u0105 systemowej funkcji `StretchBlt` i by\u0107 mo\u017ce w\u0142asna implementacja by\u0142aby szybsza. Tym bardziej, \u017ce m\u00f3g\u0142bym z\u0142\u0105czy\u0107 dwie powi\u0105zane ze sob\u0105 funkcje (wype\u0142nianie platform zadanym kolorem i przenoszenie obszaru z wykorzystaniem skalowania), co mog\u0142o by przyspieszy\u0107 renderowanie obrazu klatek. ;)","html":"
My\u015bl\u0119, \u017ce uzyska\u0142e\u015b du\u017co lepsze rezultaty (wi\u0119ksz\u0105 r\u00f3\u017cnic\u0119 na korzy\u015b\u0107 swojego rozwi\u0105zania) g\u0142\u00f3wnie dlatego, \u017ce testy przeprowadzi\u0142e\u015b na wsp\u00f3\u0142czesnym sprz\u0119cie, z lepszym CPU. Bo przecie\u017c FPC<\/strong> potrafi generowa\u0107 ca\u0142kiem niez\u0142y kod wynikowy, a sam Free Pascal<\/strong> jest w \u015bcis\u0142ej czo\u0142\u00f3wce najbardziej energooszcz\u0119dnych j\u0119zyk\u00f3w.<\/p>\n W razie czego mam jeszcze jeden algorytm do zoptymalizowania \u2013 kopiowanie obszaru jednej bitmapy do drugiej z uwzgl\u0119dnieniem skalowania. Obecnie robi\u0119 to po\u015brednio za pomoc\u0105 systemowej funkcji Po prostu przepisz to na SSE2 zamiast u\u017cywa\u0107 takich przestarza\u0142ych koby\u0142 jak StretchBlt.<\/p>\n","parent_id":41799,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41799#comment-41863","created_at":"2019-02-11T15:29:58+01:00","updated_at":"2019-02-11T15:29:58+01:00","comments":[],"user":{"id":46067,"name":"Bartosz W\u00f3jcik","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/540e0c2834388.png","deleted_at":null,"is_blocked":true},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6InFlMm11MU5DMDI3d3oyeFhkNWlzclE9PSIsInZhbHVlIjoiVTJTL1VXNHJxbU5jWUpVOGswRDhBR2dBMXJ6NXJNZ3ROTVNkaWlZajZvQ1gzTTdwQ1FXZDJVMVZacm9Qc3BVMyIsIm1hYyI6IjUzYzQ0MTg4MGZjMjliZjFiMmE0MDFhYmIzOTYwMDk3NjcxOWNiZWM5ODdmNGZmNDk2MTY4MDUwYWY2ZTM0MzAiLCJ0YWciOiIifQ==","deleted_at":null},"41876":{"id":41876,"votes":0,"views":0,"text":"Jednak nie \u2013 docelowo wo\u0142ana jest `StretchMaskBlt` z widgetsetu. Zastanowi\u0119 si\u0119 nad zmian\u0105.","html":" Jednak nie \u2013 docelowo wo\u0142ana jest StretchBlt<\/code> i by\u0107 mo\u017ce w\u0142asna implementacja by\u0142aby szybsza. Tym bardziej, \u017ce m\u00f3g\u0142bym z\u0142\u0105czy\u0107 dwie powi\u0105zane ze sob\u0105 funkcje (wype\u0142nianie platform zadanym kolorem i przenoszenie obszaru z wykorzystaniem skalowania), co mog\u0142o by przyspieszy\u0107 renderowanie obrazu klatek. ;)<\/p>\n","parent_id":41799,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41799#comment-41808","created_at":"2019-02-10T11:54:31+01:00","updated_at":"2019-02-10T11:54:31+01:00","comments":[],"user":{"id":49548,"name":"furious programming","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/fDAyteG6Up1A7088jM0TZ6Yj7gZX6QLATaFVIOXh.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6ImZGcWUrUjJmc0hNQXJZV2cxR0RjcFE9PSIsInZhbHVlIjoiRXRLN3g3c1Vab1JqbDM4ZVJLMXNWbEdacXo1N3dRQXhuUkxIVlJoYkZCdnIrKzlMSGttL0xaZThUVVo0RDRkRyIsIm1hYyI6ImJjNWY5YzE2NTY5Yzc4ZTBjYzcyYjIxOWEwNDYxMzNjMzFjNmJjNjFiYmNmZGM0YThlYjgwZjhmODU0M2Y0ZTQiLCJ0YWciOiIifQ==","deleted_at":null},"41863":{"id":41863,"votes":0,"views":0,"text":"Po prostu przepisz to na SSE2 zamiast u\u017cywa\u0107 takich przestarza\u0142ych koby\u0142 jak StretchBlt.","html":"
StretchMaskBlt<\/code> z widgetsetu. Zastanowi\u0119 si\u0119 nad zmian\u0105.<\/p>\n","parent_id":41799,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/41799#comment-41876","created_at":"2019-02-11T16:22:10+01:00","updated_at":"2019-02-11T16:22:10+01:00","comments":[],"user":{"id":49548,"name":"furious programming","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/fDAyteG6Up1A7088jM0TZ6Yj7gZX6QLATaFVIOXh.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlQrUUtISGtJOHpzaGxIZTRmWVVRVUE9PSIsInZhbHVlIjoia1BTV2ZWTlpIcGZJWnhJd2E3eHBXS1lKU1lPN3E1UXFWZy9TaE55Y0JjOWpUSy9tLzZQc25qOWI3eWRJSVZMTSIsIm1hYyI6IjI0ZWNlMjE2NDJlOTVjZjgxNDRiMjJiMzA4M2UxMTQwZTkwNTJmY2YzZDU0NGIxMzJmOGU1ZGU1NDdmYzI2MTMiLCJ0YWciOiIifQ==","deleted_at":null}}