dotnetomaniak.pl

dotnetomaniak.pl - Najnowsze artykuły o .NET w dziale Programowanie rozproszone - Strona 3

Dzisiaj kilka rozważań na temat korzyści płynących z wielowątkowości. Zastanówmy się, jak  bardzo może nam pomóc albo zaszkodzić wprowadzenie nowych wątków w aplikacji. Jeśli wykonanie danej pracy na jednym procesorze zajmuje T(1) a wykonanie jej na n procesorach zajmuje T(n) wtedy możemy oszacować korzyści płynące z nowych wątków. W przypadku gdy T(1)/T(n) daje wynik < n. oznacza to, że gdy praca na jednym rdzeniu zajęła 5 sekund, wtedy na 5 rdzeniach zajmie np. 1.2 sekundy. czyli wydajność ma chara...

Piotr Zieliński » Jaki wpływ na wydajność ma programowanie współbieżne

by Marcin Borecki Dzisiaj artykuł z serii poważnych– choć po przeczytaniu części tekstu mogło by się wydawać, że żartuję to chciałbym położyć nacisk na to by wszyscy zrozumieli jak działają dyski podłączone automatycznie do maszyny wirtualnej. Chciałbym dzisiaj zainspirować wszystkich do czytania tego bloga, albo chociaż do przeczytania dokumentacji w Windows Azure do komponentów, których zamierzacie używać. W ramach usługi Windows Azure możemy założyć maszyny wirtualne zarówno z systemem Linux jak I W...

Tagi: Azure, dysk, vhd
Dziel się z innymi:
CloudExpert.pl | [Azure] Kopia danych na dysku w RAM–czyli dlaczego rozwaga to podstawa?

Programowanie rozproszone 1186 dni, 21 godzin, 24 minuty temu mborecki 138 rozwiń

Dzisiaj zajmiemy się kolejnym wzorcem przeznaczonym dla środowiska wielowątkowego. W dokumentacji\artykułach możemy go spotkać pod nazwą “condition pattern”. Załóżmy, że jeden wątek musi sprawdzić pewien warunek aby móc wykonać jakąś pracę. Innymi słowy, mamy współdzielony zestaw zmiennych, modyfikowanych przez różne wątki. Jeden z wątków może wykonać swój kod wyłącznie, gdy te współdzielone zmienne spełnią jakiś warunek. W jaki sposób moglibyśmy podejść do problemu? Najprostszym rozwiązaniem byłaby pęt...

Dziel się z innymi:
Piotr Zieliński » Sprawdzanie warunku w środowisku wielowątkowym

Programowanie rozproszone 1314 dni, 19 godzin, 38 minut temu pzielinski 167 rozwiń

W ostatnim poście zajęliśmy się wprowadzeniem do TPL Dataflows. Użyliśmy ActionBlock do implementacji wzorca producent\konsument. Dzisiaj dołączymy kolejne bloki, aby pokazać na czym polega tworzenie współbieżnych algorytmów w TPL. ActionBlock przetwarzał wyłącznie dane – nie zwracał żadnego rezultatu. Innymi słowy, przyjmował parametry wejściowe ale zwracał wyłącznie void. TransformBlock implementuje zarówno ITargetBlock jak i ISourceBlock – stanowi również źródło danych. Rozważmy przykład:privatestati...

Piotr Zieliński » TPL Dataflows–część II (TransformBlock i BroadcastBlock)

Programowanie rozproszone 1336 dni, 5 godzin, 8 minut temu pzielinski 62 rozwiń

Witajcie, Chciałbym Was wszystkich zaprosić do “przygody”, która będzie trwać kilka następnych miesięcy, a będzie związana z poznaniem technologii chmury firmy Microsoft zwanej Windows Azure. Dzisiejszy wpis to inauguracja szkolenia, którego ramy zostaną przedstawione kilka linijek niżej, a do którego idealnym wstępem jest wpis, który poczynił Mariusz Kędziora, który w bardzo przystępny sposób opisuje czym chmura i technologie z nią związane są – link tutaj. Wstęp Dla osób, które nie zrozumiały przek...

Źródło: marcinborecki.pl
Dziel się z innymi:
Windows Azure–zaczynamy wyzwanie zwane szkoleniem « Marcin Borecki – Making a difference everyday

Programowanie rozproszone 1446 dni, 3 godziny, 21 minut temu mborecki 60 rozwiń

Praca z obiektami COM może być trudna i czasami frustrująca. Przykład:Worksheet sheet = excelApp.Worksheets.Open(...); // Jakaś logika. Odczytywanie lub modyfikacja arkusza itp.Marshal.ReleaseComObject(sheet); Marshal.ReleaseComObject(excelApp); O obiektach COM należy pamiętać, również po zakończeniu pracy z nimi – należy zwolnić wszelkie zasoby. Nie zawsze jest to proste i oczywiste. Powyższy kod spowoduje memory leak ponieważ Worksheets również musi zostać zwolniony. Metoda Open jest wywołana na ob...

Tagi: C#, COM
Dziel się z innymi:
Piotr Zieliński » Code Review: obiekty COM oraz zasada “double dot”.

Programowanie rozproszone 1562 dni, 23 godziny, 47 minut temu pzielinski 121 rozwiń

W trakcie tworzenia serwisów bazujących na ASP.NET niejednokrotnie zdarza się potrzeba przesyłania dużych plików przez sieć. W przypadku, gdy kontroler, aby przetransportować plik do przeglądarki, musi odwołać się do usługi sieciowej (w opisywanym przez mnie wypadku WCF) sprawy mogą się trochę skomplikować. Ponieważ nie chcielibyśmy, aby nasz serwer regularnie zapychał się buforując dużą ilość danych, dobrym rozwiązaniem byłoby utworzenie strumienia wzdłuż całego stosu komunikacyjnego...

Bartosz Sypytkowski Blog: Forwardowanie i streaming dużych plików przez WCF

Dziś kolejny post o kolekcjach, które mogą być używanie swobodnie w środowisku współbieżnym. Tak jak ConcurrentBag, obiekty przedstawione w tym poście również są mocno zoptymalizowane. ConcurrentQueue to po prostu kolejka.

Dziel się z innymi:
Wielowątkowe ConcurrentQueue oraz ConcurrentStack

Programowanie rozproszone 1670 dni, 6 godzin, 3 minuty temu pzielinski 115 rozwiń

W ostatnim poście pisałem o różnych mechanizmach opartych o Spin. Zachęcam do przejrzenia ostatnich wpisów ponieważ bez tego trudno będzie zrozumieć dzisiejszy post. SpinWait jest strukturą, w której najważniejsza metoda to SpinOnce. SpinOnce przez pierwsze 10 wywołań wykonuje  klasyczny Spin (patrz poprzednie posty) dzięki czemu nie musimy obawiać się koszty związanego z uśpieniem wątku, zmianą kontekstu itp. SpinOnce jest jednak na tyle inteligentny, że po 10 wywołaniach zmienia swoje zachowanie:Po 10...

Dziel się z innymi:
Piotr Zieliński » Struktura SpinWait i synchronizacja bez użycia blokad

Często spotykanym wyzwaniem przy budowie systemów rozproszonych jest przesyłanie plików o znacznych rozmiarach. Tego typu rozwiązanie w łatwy sposób można zaimplementować w technologii WCF, która pozwala na tworzenie wszechstronnych i wydajnych usług sieciowych. Na przykładowym serwisie WCF pokażę w jaki sposób radzić sobie z wysyłaniem i odbieraniem dużych plików pomiędzy klientem a usługą.

Tagi: .Net, C#, stream, WCF
Dziel się z innymi:
Przesyłanie plików w systemach rozproszonych – streaming w WCF « Developer notes

Programowanie rozproszone 1704 dni, 3 godziny, 56 minut temu psz750 399 rozwiń

.NET 4.5 przynosi wiele zmian. Szczególnie ciekawym jest nowe podejście do programowania asynchronicznego, znacząco ułatwiające prace programisty z callback’ami itp. W zasadzie nie ma już callback’ow – kod asynchroniczny niewiele różni się od synchronicznego. Zachęcam do przeczytania mojego nowego artykułu: http://msdn.microsoft.com/pl-pl/library/programowanie-asynchroniczne-w-net-4-5.aspxExplore posts in the same categories:C#, Wielowątkowość This entry was posted ...

Dziel się z innymi:
Piotr Zieliński » Programowanie asynchroniczne w .NET 4.5

Programowanie rozproszone 1738 dni, 11 godzin, 36 minut temu pzielinski 381 rozwiń

Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8], [RX9], [RX10]) i pojawią się w nim przykłady wykorzystania Reactive Extensions. W ramach przykładu pokazane zostanie okno aplikacji, która w pasku statusu będzie wyświetlać, położenie kursora myszki w oknie aplikacji oraz informacja, czy kursor znajduje się w lewej, czy prawej części okna. Niniejszy przykład zostanie wykonany z wykorzystaniem WPF, należy więc pamiętać, że...

Dziel się z innymi:
[RX 11] Reactive Extensions, więcej o zdarzeniach, czyli przykłady z myszką [PL] | Maciej Zbrzezny: Programowanie i Technologie

Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8], [RX9]), dotyczyć on będzie możliwości metod rozszerzających służących wykonywaniu połączenia dwóch lub więcej strumieni. Jedną z interesujących cech Reactive Extensions jest kompozycja obserwowalnych kolekcji, czyli strumieni danych. Istnieje wiele metod rozszerzających służących wykonywaniu połączenia dwóch lub więcej strumieni; Amb, Concat, SelectMany, Merge, Zip, Combin...

Dziel się z innymi:
[RX 10] Komponowanie strumieni w Reactive Extensions [PL] | Maciej Zbrzezny: Programowanie i Technologie

Programowanie rozproszone 1812 dni, 12 godzin, 54 minuty temu http://pawlos.blogspot.com/ 85 rozwiń

autor: Ostatnio przeglądając kod udało mi się znaleźć następujący fragment:lock(this){// Do something} Do zsynchronizowania dostępu do współdzielonego zasobu używany jest obiekt, w którym występuje ten fragment kodu. Teoretycznie fragment ten jest poprawny. Co więcej w programie nie wystąpił żaden problem z zakleszczeniem. Przeglądając literaturę możemy natrafić na następujące przykłady: 1. W O’Reilly Programming C# można spotkać następujący przykład użycia słowa kluczowego ...

Dziel się z innymi:
lock (this) – za i przeciw

Programowanie rozproszone 1820 dni, 23 godziny, 38 minut temu paduda 394 rozwiń

Niniejszy post jest kontynuacją cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7], [RX 8]), dotyczyć on będzie możliwości wykorzystania LINQ na obserwowalnych kolekcjach i w RX. W uproszczeniu Language INtegrated Query (LINQ) to część technologii .NET i umożliwia zadawanie pytań na obiektach, a składnia LINQ przypomina trochę SQL (patrz Wikipedia). Cechą charakterystyczną LINQ jest to, że operuje ona na dowolnych kolekcjach oferujących iterator (czyli operuje n...

Dziel się z innymi:
[RX 9] Operacje LINQ na obserwowalnych kolekcjach w Reactive Extension [PL] | Maciej Zbrzezny: Programowanie i Technologie

Programowanie rozproszone 1827 dni, 23 godziny, 48 minut temu paduda 84 rozwiń

W ramach kontynuacji cyklu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6], [RX 7]) chciałbym przejść teraz do zdarzeń, dla których Rx dostarcza szczególnego wsparcia. Programowanie reaktywne, to również wykorzystanie zdarzeń (z j. ang. event), do których podłączamy się, przekazując delegat do funkcji, która ma obsłużyć zdarzenie (z j. ang. event handler), następnie czekamy na nachodzące zdarzenia. Dla przykładu rozważmy obsługę zdarzeń związanych z ruchem myszy. Wyobraźmy ...

Tagi: Rx
Dziel się z innymi:
[RX 8] Zdarzenia w .NET niby pożyteczne, łatwe, ale... | Maciej Zbrzezny: Programowanie i Technologie

Dziś krótko. W ramach kontynuacji artykułu o Reactive Extensions dla .NET ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5], [RX 6]) chciałbym wrócić znów do obserwowalnych kolekcji i źródeł, na podstawie których one powstają. Przecież nie zawsze powstaną one ze "zwykłej" kolekcji i zwykle nie jest wiadome, jakie dane one zawierają. Reactive Extension (RX) wyróżnia dwa typy źródeł danych, na podstawie których może powstać obserwowalna kolekcja. Są to źródła zimne i ciepłe (z j. ang. cold i hot). Źródła "zimne" s...

Dziel się z innymi:
[RX 7] Zabawa w „ciepło – zimno”, czyli zimne i ciepłe źródła w Reactive Extension [PL] | Maciej Zbrzezny: Programowanie i Technologie

Programowanie rozproszone 1831 dni, 17 godzin, 13 minut temu paduda 99 rozwiń

autor: W poprzednich częściach ([RX 1], [RX 2], [RX 3], [RX 4], [RX 5]) artykułu o Reactive Extensions dla .NET pojawiło się już dość sporo teorii, ale raczej mało przykładów, w tym wpisie chciałbym się skupić właśnie na przykładach bazujących na zdobytej uprzednio wiedzy. Zacznijmy od zastanowienia się nad prostymi subskrypcjami. W przykładzie z wpisu pt.: "[RX 3] Reactive Extensions pierwszy kontakt z kodem", zasubskrybowaliśmy obiekt typu IObservable (funkcją Subscribe) i jako parametr przekazane zost...

[RX 6] Przykłady dot. obserwowalnych kolekcji w Reactive Extensions [PL] | Maciej Zbrzezny: Programowanie i Technologie

Programowanie rozproszone 1835 dni, 12 godzin, 24 minuty temu paduda 94 rozwiń

W ramach serii postów dotyczących Reactive Extensions przyjrzeliśmy się już problemom związanych z asynchronicznością oraz przyjrzeliśmy się bliżej kolekcjom i wzorcu obserwatora (IObserver, IObservable). W tym wpisie zobaczymy pierwszy przykład kodu wykorzystującego RX. Jak wspominałem wcześniej, w .NET 4.0 jest wbudowane pewne wsparcie dla IObserver i IObservable. Jednak są to tylko definicje wspomnianych interfejsów, aby wykorzystać pełne możliwości RX, trzeba je zainstalować i dołączyć do projektu, w...

Tagi: Rx
Dziel się z innymi:
[RX 3] Reactive Extensions pierwszy kontakt z kodem (czyli artykułu cz. 3) [PL] | Maciej Zbrzezny: Programowanie i Technologie

Aby móc korzystać z rozszerzeń RX należy najpierw je pobrać i zainstalować. Przed przeczytaniem tego posta, koniecznie należy zapoznać się z interfejsami IObservable oraz IObserver – prezentowałem je w ostatnim wpisie. Po instalacji dodajemy referencję do System.Reactive:   RX dodaje metodę ToObservable konwertującą kolekcję do IObservable, interfejsu który wspiera wzorzec obserwator. Napiszmy przykładowy obserwator:class SampleObserver : IObserver

Tagi: Rx
Dziel się z innymi:
Piotr Zieliński » Reactive Extensions I – instalacja oraz kolekcje danych

Programowanie rozproszone 1871 dni, 2 godziny, 7 minut temu pzielinski 114 rozwiń

1 2 3 4 5... 9 10
Szkolenia SecurITum

luty

25.

marzec

03.
Wroc#
Wrocław

kwiecień

03.
4developers
Warszawa
Zobacz wszystkie

.NET Developer Days 2015

W tym roku ponownie jak w poprzednim jesteśmy jednym z patronów medialnych konferencji .NET Developer Days. W tym roku jednym z prelegentów będzie Scott Hanselman.  czytaj więcej
2015-07-22

Najaktywniejsi

1

macko (32 816,53)

2

http://pawlos.blo... (31 510,42)

3

pzielinski (27 178,29)

4

gordon_shumway (21 178,87)

5

paduda (20 336,33)

6

psz750 (13 018,14)

7

rroszczyk (10 383,84)

8

Damian (9 011,08)

9

danielplawgo (7 235,99)

10

arek (6 642,85)

11

burczu (6 214,22)

12

PaSkol (5 393,84)

13

lukaszgasior (4 097,38)

14

jj09 (3 418,06)

15

jedmac (3 238,38)

16

http://jakub-flor... (3 224,66)

17

CaMeL (2 954,87)

18

mnikolajuk (2 596,93)

19

lkurzyniec (2 466,12)

20

FutureProcessing (2 460,11)