Frontendmasters Courses
897 subscribers
1 photo
7.9K videos
2.04K links
#frontendmasters courses

source: https://frontendmasters.com/courses

Channel for automated uploaded courses from frontendmasters.com

Our Channels:
@vue_courses
@vue_updates

Contacts:
@Black_Yuzia
Download Telegram
Media is too big
VIEW IN TELEGRAM
49. Deploying a Service
Erik walks through deploying the service repository to AWS. When code and docker images are committed in the developer repositories, a GitHub action connects to AWS and pushes the image to ECS.
#lesson
Media is too big
VIEW IN TELEGRAM
50. Wrapping Up
Erik wraps up the course by discussing how automation could be extended further by abstracting the network and cluster resources. Workspace outputs can be referenced by related workspaces, which reduces the need to duplicate workspaces for new network resources.
#lesson
Title: Bare Metal JavaScript: The JavaScript Virtual Machine
Description: Build a mental model of JavaScript's performance characteristics through understanding virtual machines under the hood.
Link: https://frontendmasters.com/courses/javascript-cpu-vm/
Time: 3 hours, 21 minutes
Lessons: 18 / 18
Tags: #course #frontendmasters #720p
Media is too big
VIEW IN TELEGRAM
1. Introduction
Miško Hevery provides an overview of the course topic, how JavaScript virtual machines connect physical computer hardware with the virtual world of JavaScript. Course topics include performance implications, double vs. triple equals, function calls, and arrays with holes.
-
https://github.com/mhevery/JavaScriptVM under the hood/
#lesson
Media is too big
VIEW IN TELEGRAM
2. Physical & Virtual Machines
Miško discusses the virtual machine's role in the communication between code and the CPU. Parts of the CPU, including registers, arithmetic logic unit, and program counter and how they interact with memory, is also covered in this segment
#lesson
Media is too big
VIEW IN TELEGRAM
3. CPU Basics & Speed Limits
Miško walks through the basics of a CPU, including its registers and memory operations. The limitations of CPU speed and the techniques used to make CPUs faster, such as increasing clock speed, parallelism, and adding more cores.
-
https://github.com/mhevery/JavaScriptVM under the hood/
#lesson
Media is too big
VIEW IN TELEGRAM
4. CPU Memory Management
Miško explores memory management and introduces the concept of a program section and a data section in CPU memory. How CPU registers are used to load, store, and manipulate data within these memory sections is also discussed in this segment.
#lesson
Media is too big
VIEW IN TELEGRAM
5. CPU Subroutines & Calling Conventions
Miško explains the concept of subroutines, their primitive nature compared to functions, and the mechanics of calling a subroutine. How data is passed, how registers are managed, the risks of stack overflow, and the role of the stack pointer in preserving program state are also discussed in this segment.
#lesson
Media is too big
VIEW IN TELEGRAM
6. CPU Q&A
Miško answers student questions about the concept of computer RAM being similar to a massive array, how different registers within a CPU play specialized roles in performing operations, and how hardware architecture varies between CPU types. JavaScript engines, bridging the gap between high-level programming languages and low-level hardware operations is also covered in this segment.
#lesson
Media is too big
VIEW IN TELEGRAM
7. Fibonacci
Miško discusses the transition from low-level machine language to assembly language in computer programming, how assembly language provides a more human-readable and manageable way to work with machine-level instructions. The concept of subroutine calls and recursion using an example of implementing the Fibonacci sequence in assembly language is also covered in this segment.
#lesson
Media is too big
VIEW IN TELEGRAM
8. Optimizing Code
Miško discusses the trade-off between speed and memory in programming, how modern virtual machines analyze code for constants, inline functions for optimization, and deopt. A student's question regarding the performance of function declaration compared to function expression is also covered in this segment.
#lesson
Media is too big
VIEW IN TELEGRAM
9. Deopt Explorer & Fixing a Deopt
Miško introduces a tool called deopt explorer, which provides insights into the performance of JavaScript code running in V8, the JavaScript engine used in Node.js. How to generate a log of V8's compilation and optimization events and how to analyze this log using deopt explorer is also covered in this segment.
#lesson
Media is too big
VIEW IN TELEGRAM
10. Object Shapes & Hidden Classes
Miško discusses the performance implications of property reads in JavaScript objects and the impact of polymorphic behavior and inline caching. How JavaScript objects are represented internally in V8 and how hidden classes are used to optimize property access are also discussed in this segment.
#lesson
Media is too big
VIEW IN TELEGRAM
11. Object Shapes & Inline Caching
Miško demonstrates the performance implications of using inline caching, discusses how inline caches work, and how they can optimize property access. Consider the shape of objects in your code and how inline caches can impact real-world performance, especially in complex frameworks and applications.
#lesson
Media is too big
VIEW IN TELEGRAM
12. Inspecting Inline Caches with Deopt Explorer
Miško demonstrates using deopt explorer to analyze JavaScript code, highlighting various aspects such as inline caches, deoptimizations, and object shapes The significance of monomorphic and polymorphic reads in optimizing code execution is also discussed in this segment.
#lesson
Media is too big
VIEW IN TELEGRAM
13. Double & Triple Equals
Miško discusses how JavaScript's equality operators, triple equals (strict equality) is generally faster than double equals (loose equality) due to the absence of type coercion. A demonstration of how adding properties to objects or prototypes can unexpectedly impact the performance of double equals comparisons is also provided in this segment.
#lesson
Media is too big
VIEW IN TELEGRAM
14. Object & Array Copying
Miško discusses using JSX, which converts into object literals, leading to potential performance issues when converting these object literals into DOM attributes. Benchmark comparisons between different approaches, such as using objects, arrays, and copying objects, to highlight the performance differences and considerations when working with JSX in real applications are also provided in this segment.
#lesson
Media is too big
VIEW IN TELEGRAM
15. Negative Numbers
Miško explores a JavaScript behavior where using negative zero (-0) can lead to slower performance compared to performing zero minus X (0 - X). This phenomenon arises from how JavaScript handles negative zero as a floating-point number, which can disrupt compiler optimizations when accessing properties or arrays with integers, resulting in performance differences between browsers.
#lesson
Media is too big
VIEW IN TELEGRAM
16. Holey Arrays
Miško discusses the concept of "holy arrays" in JavaScript, which are arrays that contain holes or undefined values. Reading values from holy arrays can lead to performance issues due to the need to traverse the prototype chain to resolve undefined values, making optimization challenging for JavaScript engines.
#lesson
Media is too big
VIEW IN TELEGRAM
17. Amdahl’s Law
Miško discusses Amdahl's Law, which highlights the importance of optimizing code that has a significant impact on the overall application performance rather than just focusing on small, infrequently executed portions. How modern CPUs and virtual machines work together to create the illusion of running JavaScript is also discussed in this segment.
#lesson
Media is too big
VIEW IN TELEGRAM
18. Wrapping Up
Miško wraps up the course by discussing tools for static analysis and performance evaluation. The complexities of CPU caching and modern compiler optimizations is also covered in this segment.
#lesson