Optimizing Java. Practical Techniques for Improving JVM Application Performance
![Język publikacji: angielski Język publikacji: angielski](https://static01.helion.com.pl/global/flagi/1.png)
- Autorzy:
- Benjamin J Evans, James Gough, Chris Newland
![Optimizing Java. Practical Techniques for Improving JVM Application Performance Benjamin J Evans, James Gough, Chris Newland - okładka ebooka](https://static01.helion.com.pl/global/okladki/326x466/e_0ugq.png)
![Optimizing Java. Practical Techniques for Improving JVM Application Performance Benjamin J Evans, James Gough, Chris Newland - tył okładki ebooka](https://static01.helion.com.pl/global/okladki-tyl/326x466/e_0ugq.png)
- Ocena:
- Bądź pierwszym, który oceni tę książkę
- Stron:
- 440
- Dostępne formaty:
-
ePubMobi
Opis ebooka: Optimizing Java. Practical Techniques for Improving JVM Application Performance
Performance tuning is an experimental science, but that doesn’t mean engineers should resort to guesswork and folklore to get the job done. Yet that’s often the case. With this practical book, intermediate to advanced Java technologists working with complex technology stacks will learn how to tune Java applications for performance using a quantitative, verifiable approach.
Most resources on performance tend to discuss the theory and internals of Java virtual machines, but this book focuses on the practicalities of performance tuning by examining a wide range of aspects. There are no simple recipes, tips and tricks, or algorithms to learn. Performance tuning is a process of defining and determining desired outcomes. And it requires diligence.
- Learn how Java principles and technology make the best use of modern hardware and operating systems
- Explore several performance tests and common anti-patterns that can vex your team
- Understand the pitfalls of measuring Java performance numbers and the drawbacks of microbenchmarking
- Dive into JVM garbage collection logging, monitoring, tuning, and tools
- Explore JIT compilation and Java language performance techniques
- Learn performance aspects of the Java Collections API and get an overview of Java concurrency
Wybrane bestsellery
-
This course offers an in-depth introduction to Java and algorithmic thinking, ideal for beginners. Starting with fundamental computer concepts, it progresses through Java programming basics, & algorithmic principles, concluding with file management.
Java and Algorithmic Thinking for the Complete Beginner. From Basics to Advanced Techniques: Master Java and Algorithms for a Robust Programming Foundation Java and Algorithmic Thinking for the Complete Beginner. From Basics to Advanced Techniques: Master Java and Algorithms for a Robust Programming Foundation
-
Książka Java. Teoria w praktyce została pomyślana tak, by krok po kroku przybliżać specyfikę tego języka programowania. Zaczniesz od podstaw - poznasz między innymi główne założenia, zgodnie z którymi działa Java: maszynę wirtualną, zmienne, operatory, instrukcje sterujące i tablice - by następni...(87.20 zł najniższa cena z 30 dni)
76.30 zł
109.00 zł(-30%) -
Architect robust solutions like a pro with real-world insights and cutting-edge design techniques. Delve into advanced analytics, machine learning, generative AI, cloud-native architecture, and the key soft skills to excel as a solutions architect.
Solutions Architect's Handbook. Kick-start your career with architecture design principles, strategies, and generative AI techniques - Third Edition Solutions Architect's Handbook. Kick-start your career with architecture design principles, strategies, and generative AI techniques - Third Edition
Saurabh Shrivastava, Neelanjali Srivastav, Rajesh Sheth, Kamal Arora, Rohan Karmarkar
-
To dziewiąte wydanie znakomitego podręcznika programowania dla początkujących, starannie zaktualizowane i uzupełnione o informacje dotyczące Java Platform, Standard Edition 17. Książka rozpoczyna się od solidnej dawki wiedzy o kompilacji i uruchamianiu programu w Javie, słowach kluczowych i istot...(77.40 zł najniższa cena z 30 dni)
90.30 zł
129.00 zł(-30%) -
Dzięki tej książce zrozumiesz bazowe koncepcje programowania funkcyjnego i przekonasz się, że możesz włączać je do kodu bez rezygnacji z paradygmatu obiektowego. Dowiesz się również, kiedy w swojej codziennej pracy używać takich opcji jak niemutowalność i funkcje czyste i dlaczego warto to robić....
Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego Java. Podejście funkcyjne. Rozszerzanie obiektowego kodu Javy o zasady programowania funkcyjnego
(52.20 zł najniższa cena z 30 dni)60.90 zł
87.00 zł(-30%) -
Build Your Own Programming Language provides a hands-on approach to designing and implementing programming language features in a simple compiler and programming environment. This book will help you create new or domain-specific languages.
Build Your Own Programming Language. A programmer's guide to designing compilers, interpreters, and DSLs for modern computing problems - Second Edition Build Your Own Programming Language. A programmer's guide to designing compilers, interpreters, and DSLs for modern computing problems - Second Edition
-
Java. Podręcznik na start to pozycja idealna dla każdego, kto chce podjąć takie kroki. W przystępny sposób zaznajamia nie tylko z językiem, ale też z podstawowymi koncepcjami stosowanymi podczas programowania - w obrazowy sposób przyrównuje je do sytuacji znanych spoza świata wirtualnego. Autor n...(41.40 zł najniższa cena z 30 dni)
48.30 zł
69.00 zł(-30%) -
Java należy do najpopularniejszych języków programowania na świecie. Używana przez miliony programistów, jest na tyle uniwersalna, że znajduje zastosowanie zarówno w aplikacjach desktopowych, mobilnych, jak i serwerowych, a także w zaawansowanych systemach zarządzania bazami danych. Z jej zalet k...
Java 21. Kurs video. Od "Hello World!" do programowania obiektowego Java 21. Kurs video. Od "Hello World!" do programowania obiektowego
(49.50 zł najniższa cena z 30 dni)44.55 zł
99.00 zł(-55%) -
Oto kolejne wydanie zwięzłego podręcznika dla programistów Javy, który ma ułatwić maksymalne wykorzystanie technologii tego języka w wersji 17. Treść została skrupulatnie przejrzana i uzupełniona o materiał dotyczący nowości w obiektowym modelu Javy. Pierwsza część książki obejmuje wprowadzenie d...(53.40 zł najniższa cena z 30 dni)
62.30 zł
89.00 zł(-30%)
O autorach ebooka
Benjamin J. Evans — Java Champion, JavaOne Rockstar, współzałożyciel firmy jClarity, specjalista w zakresie oceny wydajności dla zespołów programistycznych i operacyjnych, prelegent zajmujący się tematyką platformy Java, wydajności i współbieżności.
James Gough jest mistrzem Javy i architektem API. Był członkiem Java Community Process Executive Committee i rozwijał implementację OpenJDK.
Benjamin J Evans, James Gough, Chris Newland - pozostałe książki
-
This updated edition of the Nutshell guide not only helps experienced Java programmers get the most out of versions through Java 17, it also serves as a learning path for new developers. Chock-full of examples that demonstrate how to take complete advantage of modern Java APIs and development bes...(203.15 zł najniższa cena z 30 dni)
208.20 zł
239.00 zł(-13%) -
Najnowsze wydanie książki Java. Almanach ma za zadanie przede wszystkim pomóc doświadczonym programistom maksymalnie wykorzystać technologie Java 7 i Java 8, chociaż może też posłużyć jako podręcznik do nauki programowania dla początkujących programistów. Pierwsza część zawiera zwięzłe wprowadzen...(29.49 zł najniższa cena z 30 dni)
32.45 zł
59.00 zł(-45%) -
Ten przewodnik, który docenią programiści i architekci, zawiera wyczerpujące omówienie zagadnień projektowania, funkcjonowania i modyfikowania architektury API. Od strony praktycznej przedstawia strategie budowania i testowania API REST umożliwiającego połączenie oferowanej funkcjonalności na poz...
Architektura API. Projektowanie, używanie i rozwijanie systemów opartych na API Architektura API. Projektowanie, używanie i rozwijanie systemów opartych na API
(41.40 zł najniższa cena z 30 dni)48.30 zł
69.00 zł(-30%) -
Most organizations with a web presence build and operate APIs; the doorway for customers to interact with the company's services. Designing, building, and managing these critical programs affect everyone in the organization, from engineers and product owners to C-suite executives. But the real ch...(182.51 zł najniższa cena z 30 dni)
182.46 zł
219.00 zł(-17%)
Ebooka "Optimizing Java. Practical Techniques for Improving JVM Application Performance" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Optimizing Java. Practical Techniques for Improving JVM Application Performance" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Optimizing Java. Practical Techniques for Improving JVM Application Performance" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- ISBN Ebooka:
- 978-14-920-3927-3, 9781492039273
- Data wydania ebooka:
-
2018-04-17
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Język publikacji:
- angielski
- Rozmiar pliku ePub:
- 17.9MB
- Rozmiar pliku Mobi:
- 50.1MB
Spis treści ebooka
- Foreword
- Preface
- Conventions Used in This Book
- Using Code Examples
- OReilly Safari
- How to Contact Us
- Acknowledgments
- 1. Optimization and Performance Defined
- Java PerformanceThe Wrong Way
- Java Performance Overview
- Performance as an Experimental Science
- A Taxonomy for Performance
- Throughput
- Latency
- Capacity
- Utilization
- Efficiency
- Scalability
- Degradation
- Connections Between the Observables
- Reading Performance Graphs
- Summary
- 2. Overview of the JVM
- Interpreting and Classloading
- Executing Bytecode
- Introducing HotSpot
- Introducing Just-in-Time Compilation
- JVM Memory Management
- Threading and the Java Memory Model
- Meet the JVMs
- A Note on Licenses
- Monitoring and Tooling for the JVM
- VisualVM
- Summary
- 3. Hardware and Operating Systems
- Introduction to Modern Hardware
- Memory
- Memory Caches
- Modern Processor Features
- Translation Lookaside Buffer
- Branch Prediction and Speculative Execution
- Hardware Memory Models
- Operating Systems
- The Scheduler
- A Question of Time
- Context Switches
- A Simple System Model
- Basic Detection Strategies
- Utilizing the CPU
- Garbage Collection
- I/O
- Kernel bypass I/O
- Mechanical Sympathy
- Virtualization
- The JVM and the Operating System
- Summary
- 4. Performance Testing Patterns and Antipatterns
- Types of Performance Test
- Latency Test
- Throughput Test
- Load Test
- Stress Test
- Endurance Test
- Capacity Planning Test
- Degradation Test
- Types of Performance Test
- Best Practices Primer
- Top-Down Performance
- Creating a Test Environment
- Identifying Performance Requirements
- Java-Specific Issues
- Performance Testing as Part of the SDLC
- Introducing Performance Antipatterns
- Boredom
- Résumé Padding
- Peer Pressure
- Lack of Understanding
- Misunderstood/Nonexistent Problem
- Performance Antipatterns Catalogue
- Distracted by Shiny
- Description
- Example comment
- Reality
- Discussion
- Resolutions
- Distracted by Shiny
- Distracted by Simple
- Description
- Example comments
- Reality
- Discussion
- Resolutions
- Performance Tuning Wizard
- Description
- Example comment
- Reality
- Discussion
- Resolutions
- Tuning by Folklore
- Description
- Example comment
- Reality
- Discussion
- Resolutions
- The Blame Donkey
- Description
- Example comment
- Reality
- Discussion
- Resolutions
- Missing the Bigger Picture
- Description
- Example comments
- Reality
- Discussion
- Resolutions
- UAT Is My Desktop
- Description
- Example Comment
- Reality
- Discussion
- Resolutions
- Production-Like Data Is Hard
- Description
- Example comments
- Reality
- Discussion
- Resolutions
- Cognitive Biases and Performance Testing
- Reductionist Thinking
- Confirmation Bias
- Fog of War (Action Bias)
- Risk Bias
- Ellsbergs Paradox
- Summary
- 5. Microbenchmarking and Statistics
- Introduction to Measuring Java Performance
- Introduction to JMH
- Dont Microbenchmark If You Can Help It (A True Story)
- Heuristics for When to Microbenchmark
- The JMH Framework
- Executing Benchmarks
- Statistics for JVM Performance
- Types of Error
- Systematic error
- Random error
- Spurious correlation
- Types of Error
- Non-Normal Statistics
- Interpretation of Statistics
- Summary
- 6. Understanding Garbage Collection
- Introducing Mark and Sweep
- Garbage Collection Glossary
- Introducing Mark and Sweep
- Introducing the HotSpot Runtime
- Representing Objects at Runtime
- GC Roots and Arenas
- Allocation and Lifetime
- Weak Generational Hypothesis
- Garbage Collection in HotSpot
- Thread-Local Allocation
- Hemispheric Collection
- The Parallel Collectors
- Young Parallel Collections
- Old Parallel Collections
- Limitations of Parallel Collectors
- The Role of Allocation
- Summary
- 7. Advanced Garbage Collection
- Tradeoffs and Pluggable Collectors
- Concurrent GC Theory
- JVM Safepoints
- Tri-Color Marking
- CMS
- How CMS Works
- Basic JVM Flags for CMS
- G1
- G1 Heap Layout and Regions
- G1 Algorithm Design
- G1 Phases
- Basic JVM Flags for G1
- Shenandoah
- Concurrent Compaction
- Obtaining Shenandoah
- C4 (Azul Zing)
- The Loaded Value Barrier
- Balanced (IBM J9)
- J9 Object Headers
- Large Arrays in Balanced
- NUMA and Balanced
- Legacy HotSpot Collectors
- Serial and SerialOld
- Incremental CMS (iCMS)
- Deprecated and Removed GC Combinations
- Epsilon
- Summary
- 8. GC Logging, Monitoring, Tuning, and Tools
- Introduction to GC Logging
- Switching On GC Logging
- GC Logs Versus JMX
- Drawbacks of JMX
- Benefits of GC Log Data
- Introduction to GC Logging
- Log Parsing Tools
- Censum
- GCViewer
- Different Visualizations of the Same Data
- Basic GC Tuning
- Understanding Allocation
- Understanding Pause Time
- Collector Threads and GC Roots
- Tuning Parallel GC
- Tuning CMS
- Concurrent Mode Failures Due to Fragmentation
- Tuning G1
- jHiccup
- Summary
- 9. Code Execution on the JVM
- Overview of Bytecode Interpretation
- Introduction to JVM Bytecode
- Simple Interpreters
- HotSpot-Specific Details
- Overview of Bytecode Interpretation
- AOT and JIT Compilation
- AOT Compilation
- JIT Compilation
- Comparing AOT and JIT Compilation
- HotSpot JIT Basics
- Klass Words, Vtables, and Pointer Swizzling
- Logging JIT Compilation
- Compilers Within HotSpot
- Tiered Compilation in HotSpot
- The Code Cache
- Fragmentation
- Simple JIT Tuning
- Summary
- 10. Understanding JIT Compilation
- Introducing JITWatch
- Basic JITWatch Views
- Debug JVMs and hsdis
- Introducing JITWatch
- Introducing JIT Compilation
- Inlining
- Inlining Limits
- Tuning the Inlining Subsystem
- Loop Unrolling
- Loop Unrolling Summary
- Escape Analysis
- Eliminating Heap Allocations
- Locks and Escape Analysis
- Limitations of Escape Analysis
- Monomorphic Dispatch
- Intrinsics
- On-Stack Replacement
- Safepoints Revisited
- Core Library Methods
- Upper Method Size Limit for Inlining
- Improve performance with a domain-specific method
- Benefits of small methods
- Upper Method Size Limit for Inlining
- Upper Method Size Limit for Compilation
- Summary
- 11. Java Language Performance Techniques
- Optimizing Collections
- Optimization Considerations for Lists
- ArrayList
- LinkedList
- ArrayList versus LinkedList
- Optimization Considerations for Maps
- HashMap
- LinkedHashMap
- HashMap
- TreeMap
- Lack of MultiMap
- Optimization Considerations for Sets
- Domain Objects
- Avoid Finalization
- War Story: Forgetting to Clean Up
- Why Not Use Finalization to Solve the Problem?
- try-with-resources
- Method Handles
- Summary
- 12. Concurrent Performance Techniques
- Introduction to Parallelism
- Fundamental Java Concurrency
- Introduction to Parallelism
- Understanding the JMM
- Building Concurrency Libraries
- Unsafe
- Atomics and CAS
- Locks and Spinlocks
- Summary of Concurrent Libraries
- Locks in java.util.concurrent
- Read/Write Locks
- Semaphores
- Concurrent Collections
- Latches and Barriers
- Executors and Task Abstraction
- Introducing Asynchronous Execution
- Selecting an ExecutorService
- Fork/Join
- Modern Java Concurrency
- Streams and Parallel Streams
- Lock-Free Techniques
- Actor-Based Techniques
- Summary
- 13. Profiling
- Introduction to Profiling
- Sampling and Safepointing Bias
- Execution Profiling Tools for Developers
- VisualVM Profiler
- JProfiler
- YourKit
- Flight Recorder and Mission Control
- Operational Tools
- Red Hat Thermostat
- New Relic
- jClarity Illuminate
- Modern Profilers
- Allocation Profiling
- Heap Dump Analysis
- hprof
- Summary
- 14. High-Performance Logging and Messaging
- Logging
- Logging Microbenchmarks
- No logging
- Logback format
- java.util.logging format
- Log4j format
- Measurements
- Logger results
- Logging Microbenchmarks
- Logging
- Designing a Lower-Impact Logger
- Low Latency Using Real Logic Libraries
- Agrona
- Buffers
- Lists, maps, and sets
- Queues
- Ring buffers
- Agrona
- Simple Binary Encoding
- Copy-free and native type mapping
- Steady-state allocation
- Streaming access and word-aligned access
- Working with SBE
- Aeron
- Why build something new?
- Publishers
- Subscribers
- The Design of Aeron
- Transport requirements
- Latency and application principles
- How it works under the hood
- Summary
- 15. Java 9 and the Future
- Small Performance Enhancements in Java 9
- Segmented Code Cache
- Compact Strings
- New String Concatenation
- C2 Compiler Improvements
- New Version of G1
- Small Performance Enhancements in Java 9
- Java 10 and Future Versions
- New Release Process
- Java 10
- Unsafe in Java 9 and Beyond
- VarHandles in Java 9
- Project Valhalla and Value Types
- Graal and Truffle
- Future Directions in Bytecode
- Future Directions in Concurrency
- Conclusion
- Index
O'Reilly Media - inne książki
-
Keeping up with the Python ecosystem can be daunting. Its developer tooling doesn't provide the out-of-the-box experience native to languages like Rust and Go. When it comes to long-term project maintenance or collaborating with others, every Python project faces the same problem: how to build re...(203.15 zł najniższa cena z 30 dni)
207.64 zł
239.00 zł(-13%) -
Bringing a deep-learning project into production at scale is quite challenging. To successfully scale your project, a foundational understanding of full stack deep learning, including the knowledge that lies at the intersection of hardware, software, data, and algorithms, is required.This book il...(237.15 zł najniższa cena z 30 dni)
249.75 zł
289.00 zł(-14%) -
Frontend developers have to consider many things: browser compatibility, usability, performance, scalability, SEO, and other best practices. But the most fundamental aspect of creating websites is one that often falls short: accessibility. Accessibility is the cornerstone of any website, and if a...(194.65 zł najniższa cena z 30 dni)
207.20 zł
239.00 zł(-13%) -
In this insightful and comprehensive guide, Addy Osmani shares more than a decade of experience working on the Chrome team at Google, uncovering secrets to engineering effectiveness, efficiency, and team success. Engineers and engineering leaders looking to scale their effectiveness and drive tra...(118.15 zł najniższa cena z 30 dni)
121.29 zł
149.00 zł(-19%) -
Data modeling is the single most overlooked feature in Power BI Desktop, yet it's what sets Power BI apart from other tools on the market. This practical book serves as your fast-forward button for data modeling with Power BI, Analysis Services tabular, and SQL databases. It serves as a starting ...(194.65 zł najniższa cena z 30 dni)
206.44 zł
239.00 zł(-14%) -
C# is undeniably one of the most versatile programming languages available to engineers today. With this comprehensive guide, you'll learn just how powerful the combination of C# and .NET can be. Author Ian Griffiths guides you through C# 12.0 and .NET 8 fundamentals and techniques for building c...(228.65 zł najniższa cena z 30 dni)
249.84 zł
289.00 zł(-14%) -
Learn how to get started with Futures Thinking. With this practical guide, Phil Balagtas, founder of the Design Futures Initiative and the global Speculative Futures network, shows you how designers and futurists have made futures work at companies such as Atari, IBM, Apple, Disney, Autodesk, Luf...(152.15 zł najniższa cena z 30 dni)
155.30 zł
179.00 zł(-13%) -
Augmented Analytics isn't just another book on data and analytics; it's a holistic resource for reimagining the way your entire organization interacts with information to become insight-driven.Moving beyond traditional, limited ways of making sense of data, Augmented Analytics provides a dynamic,...(181.25 zł najniższa cena z 30 dni)
181.15 zł
219.00 zł(-17%) -
Learn how to prepare for—and pass—the Kubernetes and Cloud Native Associate (KCNA) certification exam. This practical guide serves as both a study guide and point of entry for practitioners looking to explore and adopt cloud native technologies. Adrián González Sánchez ...
Kubernetes and Cloud Native Associate (KCNA) Study Guide Kubernetes and Cloud Native Associate (KCNA) Study Guide
(169.14 zł najniższa cena z 30 dni)177.65 zł
209.00 zł(-15%) -
Python is an excellent way to get started in programming, and this clear, concise guide walks you through Python a step at a time—beginning with basic programming concepts before moving on to functions, data structures, and object-oriented design. This revised third edition reflects the gro...(148.67 zł najniższa cena z 30 dni)
148.56 zł
179.00 zł(-17%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
![Loader](https://static01.helion.com.pl/ebookpoint/img/ajax-loader.gif)
![ajax-loader](https://static01.helion.com.pl/ebookpoint/img/ajax-loader.gif)
Oceny i opinie klientów: Optimizing Java. Practical Techniques for Improving JVM Application Performance Benjamin J Evans, James Gough, Chris Newland (0)
Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.