آموزش استفاده از جریانهای موازی برای پردازش سریع داده در جاوا

Leveraging Parallel Streams for Fast Data Processing in Java

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیویی برای نمایش وجود ندارد.
توضیحات دوره: موازی بودن یک ویژگی شگفت انگیز است که توسط Stream API در جاوا 8 آورده شده است. در این دوره ، شما خواهید آموخت که چگونه جریان های موازی زیر هود کار می کنند ، چگونه از آنها برای بهبود عملکرد برنامه های خود استفاده کنید و چه زمانی از آنها جلوگیری کنید. همراه با اجرای الگوریتم کاهش نقشه/فیلتر ، API جریان یک ویژگی شگفت انگیز را به ارمغان می آورد: امکان انجام پردازش داده های شما به طور موازی. موازی رفتن به سادگی فراخوانی یک روش موازی () است ، کاری که بسیاری از توسعه دهندگان وسوسه می شوند آن را انجام دهند. در این دوره ، با استفاده از جریان های موازی اهرمی برای پردازش سریع داده ها در جاوا ، خواهید آموخت که در زیر هود چه اتفاقی می افتد ، و چگونه موازی کاری در API جریان پیاده سازی شده است. اول ، خواهید دید که موازی رفتن ممکن است عملکرد محاسبات شما را بسیار بهبود بخشد ، اما همچنین ممکن است برنامه شما را خراب کند. در مرحله بعدی ، شما خواهید فهمید که چگونه همه چیز در حال کار است ، و به شما کلیدهای لازم برای تصمیم گیری در مورد موازی بودن و دور ماندن از آن را می دهد. سرانجام ، شرایطی را تحلیل خواهید کرد که همه چیز مطابق انتظار رفتار نمی کنند. با پایان این دوره ، شما درک بهتری از موازی کاری را به دست می آورید: یک موضوع پیچیده که می توانید با ایده های ساده درک کنید ، بنابراین می توانید بلافاصله از آنچه یاد می گیرید استفاده کنید.

سرفصل ها و درس ها

بررسی اجمالی دوره Course Overview

  • بررسی اجمالی دوره Course Overview

معرفی موازی سازی در Java Stream API Introducing Parallelism in the Java Stream API

  • معرفی دوره ها و جریان های موازی Introducing the Course and Parallel Streams

  • چه چیزی می خواهید یاد بگیرید؟ چه چیزی را میخواهی بدانی؟ What Are You Going to Learn? What Do You Need to Know?

  • دستور کار دوره Course Agenda

  • اندازه گیری عملکرد جریانهای موازی به طور قابل اعتماد Measuring Parallel Streams Performance Reliably

  • ایجاد یک جریان منظم به صورت موازی Making a Regular Stream a Parallel Stream

  • اندازه گیری عملکردها با استفاده از JMH Measuring Performances Using JMH

  • استفاده از محاسبه اعداد اول برای تنظیم JMH Using the Computation of Prime Numbers to Set up JMH

  • تنظیم محاسبه اعداد اول در یک جریان موازی Setting up the Prime Numbers Computation in a Parallel Stream

  • راه اندازی یک کلاس که توسط JMH نیمکت نشین شود Setting up a Class to Be Benched by JMH

  • نسخه ی نمایشی زنده: نوشتن کلاس JMH که اعداد اول را محاسبه می کند Live Demo: Writing a JMH Class That Computes Prime Numbers

  • نسخه ی نمایشی زنده: اجرای یک معیار با JMH در IDE Live Demo: Running a Benchmark with JMH in the IDE

  • Live Demo: استفاده از Maven برای اجرای معیار JMH Live Demo: Using Maven to Run a JMH Benchmark

  • تجزیه و تحلیل نتایج محاسبه متوالی و موازی Analyzing the Results of Sequential and Parallel Computation

  • بسته بندی ماژول Module Wrap Up

دریافت بهترین عملکرد از جریانهای موازی Getting the Best Performance Gains from Parallel Streams

  • معرفی ماژول و دستور کار آن Introducing the Module and Its Agenda

  • ارزش های بوکس و جعبه گشایی در انواع بسته بندی Boxing and Unboxing Values in Wrapping Types

  • نسخه ی نمایشی زنده: اندازه گیری هزینه مقادیر بوکس بصورت حلقه ای Live Demo: Measuring the Cost of Boxing Values in a Loop

  • معرفی Pointer Chasing و حافظه نهان پردازنده Introducing Pointer Chasing and the Caches of a CPU

  • تعقیب اشاره گرها برای انتقال شی از حافظه به پردازنده Chasing Pointers to Transfer Object from the Memory to the CPU

  • مقایسه تکرار از طریق ArrayList و LinkedList Comparing the Iterating over an ArrayList and a LinkedList

  • نسخه ی نمایشی زنده: اندازه گیری هزینه تعقیب نشانگر برای لیست ها Live Demo: Measuring the Cost of Pointer Chasing for Lists

  • تجزیه و تحلیل هزینه حافظه نهان سازگار حافظه Analyzing the Cost of Cache Unfriendly In-memory Structures

  • بسته بندی ماژول Module Wrap Up

تجزیه و تحلیل چنگال/پیوستن به پیاده سازی جریانهای موازی Analyzing the Fork / Join Implementation of Parallel Streams

  • معرفی ماژول و دستور کار آن Introducing the Module and Its Agenda

  • انعقاد و پیوستن به محاسبات برای اجرای موازی سازی Forking and Joining Computations to Implement Parallelism

  • تقسیم یک کار محاسبات سنگین تا زمانی که به اندازه کافی کوچک شود Splitting a Heavy Computation Task until It Becomes Small Enough

  • برای محاسبه وظایف با استفاده از Fork مشترک به Thread Threads بپیوندید Using the Common Fork Join Pool of Threads to Compute Tasks

  • با استفاده از سرقت کاری برای شلوغ نگه داشتن چنگال به استخر بپیوندید Using Work Stealing to Keep the Fork Join Pool Busy

  • پیوستن به نتایج جزئی برای تولید نتیجه نهایی Joining Partial Results to Produce a Final Result

  • پیچاندن چارچوب پیوستن به چنگال: سربار آن چیست؟ Wrapping up the Fork Join Framework: What Is Its Overhead?

  • نسخه ی نمایشی زنده: اندازه گیری سربار چارچوب عضویت Fork Live Demo: Measuring the Overhead of the Fork Join Framework

  • شناسایی مشکلات عملکرد با چارچوب پیوستن به چنگال Indentifying Performance Issues with the Fork Join Frameworks

  • یافتن عملیات ارتباطی بین رشته ای پنهان در جریان ها Finding Hidden Inter-thread Communication Operations in Streams

  • شمارش عناصر جریان با حد موازی () Counting Stream Elements with Parallel limit()

  • Live Demo: Measering the Overhead of limit () و findFirst () Live Demo: Measuring the Overhead of limit() and findFirst()

  • تجزیه و تحلیل مقدار سربار موازی () و findFirst () Analyzing the Overhead of Parallel limit() and findFirst()

  • اجتناب از استفاده از روش کاهش () برای کاهش جریان Avoiding the Use of the reduce() Method to Reduce a Stream

  • کاهش جریان با یک اپراتور دودویی غیر تداعی کننده Reducing a Stream with a Non-associative Binary Operator

  • محاسبه مجموع مربعات با یک اپراتور غیر مشارکتی Computing the Sum of the Squares with a Non-associative Operator

  • به دست آوردن نتایج مختلف اشتباه به ترتیب و موازی Getting Different Faulty Results Sequentially and In Parallel

  • به دست آوردن نتایج معیوب تصادفی به طور موازی Getting Random Faulty Results In Parallel

  • دور ماندن از اپراتورهای کاهش مشارکت غیرمجاز Staying Away from Faulty Non-associative Reduction Operators

  • نسخه ی نمایشی زنده: نمایش موضوعاتی که جریان موازی شما را اجرا می کنند Live Demo: Displaying the Threads Executing Your Parallel Stream

  • نسخه ی نمایشی زنده: اجرای یک جریان موازی در یک چنگال سفارشی به استخر بپیوندید Live Demo: Executing a Parallel Stream in a Custom Fork Join Pool

  • نسخه ی نمایشی زنده: شمارش تعداد کارهایی که هر موضوع اجرا شده است Live Demo: Counting the Number of Task Each Thread Executed

  • ماژول بسته بندی شود Module Wrap up

انتخاب منابع صحیح داده برای کارآمد بودن موازی Choosing the Right Sources of Data to Efficiently Go Parallel

  • معرفی ماژول و دستور کار آن Introducing the Module and Its Agenda

  • Forking در مورد تقسیم هر منبع داده است Forking Is About Splitting Any Source of Data

  • یافتن و رسیدن به موقعیت مرکزی یک منبع برای تقسیم آن Finding and Reaching the Center Position of a Source to Split It

  • ذخیره عناصر در یک مجموعه اجرا شده با یک آرایه پشتیبان Storing Elements in a Set Implemented with a Backing Array

  • تقسیم مجموعه ای که توسط یک آرایه ، خصوصیات SIZED و SUBSIZED پشتیبانی می شود Splitting a Set Backed by an Array, SIZED and SUBSIZED Properties

  • نسخه ی نمایشی زنده: نمایش مشکل مجموعه ها برای جریانهای موازی Live Demo: Showing the Problem of Sets for Parallel Streams

  • نسخه ی نمایشی زنده: مقایسه عملکرد لیست ها و مجموعه ها Live Demo: Comparing Performances of Lists and Sets

  • تجزیه و تحلیل لیست و تعیین معیار Analyzing the List and Set Benchmark

  • بسته بندی لیست و تنظیم معیار: لیست ها را به مجموعه ها ترجیح می دهید Wrapping up the List and Set Benchmark: Prefer Lists over Sets

  • بسته بندی ماژول Module Wrap Up

  • پایان دوره ، آخرین مشاوره ، پیوندها و تشکرها Course Wrap up, One Last Advice, Links, and Thanks

نمایش نظرات

آموزش استفاده از جریانهای موازی برای پردازش سریع داده در جاوا
جزییات دوره
2h 12m
58
Pluralsight (پلورال سایت) Pluralsight (پلورال سایت)
(آخرین آپدیت)
-
از 5
دارد
دارد
دارد
Jose Paumard
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Jose Paumard Jose Paumard

خوزه با علاقه بیش از 20 سال در مورد برنامه نویسی رایانه ها ، اولین بار در مونتاژ و C ، C برای ماشین های موازی SIMD قبل از استفاده از جاوا به عنوان یک زبان شی گرا ، برای بسیاری از عمده ترین برنامه های مدرن ضروری بود. او تخصص و ظرفیت خود را برای تجزیه و تحلیل و ترکیب در بسیاری از پروژه ها ، عمدتا در لایه های پایین تر ، نزدیک به داده ها ، بلکه همچنین در مورد طراحی پیچیده رابط کاربر یا مرورگر ، به ارمغان می آورد. دکترای ریاضیات کاربردی و علوم کامپیوتر ، استادیار دانشگاه پاریس نور به مدت 15 سال ، خوزه همچنین اشتیاق زیادی به آموزش و انتقال دانش دارد. او برای هزاران نفر از توسعه دهندگان فرانسوی زبان در سراسر جهان ، وبلاگ ، جاوا le soir ، منبع مستند فرانسه در مورد فن آوری های جاوا می نویسد. وی عضوی از گروه کاربران فرانسوی جاوا در پاریس و از سازمان دهندگان کنفرانس Devoxx France است.