เบเปเบญเบเบเบฐเบญเบฐเบเบดเบเบฒเบเบซเบปเบงเบเปเปเบเบญเบเบเบปเบเบเบงเบฒเบกเบเบฑเบเบเบต. เปเบเบเบเบฒเบเบเบปเปเบเบชเบฐเบเบฑเบเปเบกเปเบเปเบซเปเบเปเบฒเปเบเบฐเบเปเบฒเบเบตเปเบเบตเปเบฅเบฐเปเบเบทเปเบญเบเบทเปเบเปเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเปเบฅเบฑเปเบเบเบฒเบเปเบเปเบเบฒเบเบชเบฐเบเปเบญเบเปเบเบเปเบเปเบเบปเบงเบขเปเบฒเบเบเบตเปเบเปเบฒเบเบเบฒเบเปเบเปเปเบเบฑเบเบเบดเบ, เปเบเปเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบ benchmarking เบกเบฑเบเปเบเปเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบงเปเบฒเบเบฒเบเบชเบฐเบเปเบญเบเบเปเปเบเปเบฒเบเบทเบเบตเปเบเปเบญเบเบเบดเบ, LINQ เปเบกเปเบเบเปเบฒเบเบงเปเบฒเปเบเบเบฑเบเบฎเปเบฒเบเบเบญเบเบเปเบญเบ. เปเบเปเปเบเบเบตเปเบชเบธเบเบกเบฑเบเปเบเปเบซเบฑเบเบญเบญเบเบงเปเบฒเบเปเบญเบเบเบฑเบเปเบฎเบฑเบเบเบดเบเบเบฒเบเปเบเบเบฒเบเบงเบฑเบเปเบเบ ... เบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเปเบฅเบทเปเบญเบเบเบตเบงเบดเบเบเบตเปเปเบกเปเบเบขเบนเปเบเบฒเบเปเบเปเบเบฒเบเบเบฑเบเปเบฅเบฐเปเบเบเปเบฒเปเบซเบฑเบ. เบเบฑเบเบเบฑเปเบเปเบเปเบเบปเบงเบขเปเบฒเบเปเบกเปเบเบเปเบญเบเบเปเบฒเบเบเบปเปเบงเปเบเปเบฅเบฐเบเบทเบเบเบฐเบเบดเบเบฑเบเปเบเบซเบผเบฑเบเบเบฒเบเบเบฒเบกเบเบปเบเบเบฐเบเบดเปเบเบงเบดเบชเบฒเบซเบฐเบเบดเบ, เบกเบฑเบเปเบเปเบเบฒเบเปเบเบฑเบเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบซเบผเบฒเบ, เบเปเบญเบเบงเปเบฒเบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเปเบญเบ, เบเบฒเบเบชเบฒเบเบดเบเบเบตเบงเบดเบ: เบเบปเบเบเบฐเบเบปเบเบเปเปเบเบงเบฒเบกเปเบงเบเบญเบเบซเบปเบงเบเปเปเบเบปเปเบเบเปเบเบญเบเบเบปเบเบเบงเบฒเบกเปเบกเปเบ. เบเปเปเบชเบฑเบเปเบเบเปเบซเบฑเบเบเปเบญเบเปเบซเบเบเบปเบเบเบฒเบเบเบญเบ: Moq, Autofac, EF Core เปเบฅเบฐเบญเบทเปเบเป "bandings".
เบเปเบญเบเปเบฅเบตเปเบกเปเบฎเบฑเบเบงเบฝเบเบเบฒเบเปเบเปเบเบงเบฒเบกเบเบฐเบเบฑเบเปเบเบเบญเบเบเบปเบเบเบงเบฒเบกเบเบตเป:
เบเบฑเปเบเบเบตเปเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เบเบนเปเบเบฝเบเปเบเบฐเบเปเบฒเปเบซเปเปเบเปเบเบนเปเปเบเบเบเบตเปเบฅเบงเบเบฅเบงเบกเปเบเบเบเบตเปเบเบฐเปเบเบซเบฒเบงเบดเบเบตเบเบฒเบเบเบฐเปเบเบเบเบฒเบเบชเบฐเบเปเบญเบเปเบเบเบเบปเบเปเบเบฑเบเบงเบดเบเบตเบเบตเปเบเบตเบเบตเปเบเบฐเปเบเบตเปเบกเบเบงเบฒเบกเปเบงเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ. เปเบเปเบเบญเบ, เบกเบตเบเบฒเบเบเปเบญเบเบญเบฒเบเบเบดเบ IL, เปเบเปเบเปเบญเบเบขเบฒเบเบซเบผเบตเบเบฅเปเบฝเบเบกเบฑเบ, เปเบเบฒเบฐเบงเปเบฒเบเบตเปเปเบกเปเบเบงเบดเบเบตเบเบฒเบเบเบตเปเปเบเปเปเบฎเบเบเบฒเบเบซเบผเบฒเบเบเบตเปเบชเบธเบเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบงเบฝเบเบเบฒเบ, เปเบเบดเปเบเบกเบตเบเบงเบฒเบกเบเบดเบเบเบฒเบเบซเบผเบฒเบ.
เบเบดเบเบฒเบฅเบฐเบเบฒเบงเปเบฒเบเปเบญเบเบกเบตเบเบงเบฒเบกเบเบดเบเปเบซเบฑเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบชเบฐเปเบซเบกเบตเบเปเบฝเบงเบเบฑเบเบเบงเบฒเบกเปเบงเบเบญเบเบเบฒเบเบชเบฐเบเปเบญเบ, เบเปเบญเบเบเปเปเบเบฑเปเบเปเบเปเบเบเบชเบฐเปเบเบฒเบฐเบเปเบฒเบเบฒเบกเบเบปเบเบชเบฐเบซเบผเบธเบเบเบญเบเบเบนเปเบเบฝเบ.
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบกเบฑเบเบเบฐเบเบปเบเบเบฑเบเบเบฒเบเบเปเบฒเปเบเป naive เบเบญเบเบชเบฐเบเปเบญเบเปเบซเปเปเบซเบฑเบเปเบเบงเบดเบชเบฒเบซเบฐเบเบดเบ. เบเบฐเปเบเบเปเบกเปเบเบเบฐเบเบดเบเบฑเบ. เบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบฑเบเบชเบดเบเปเบเปเบเบทเบเบเบฐเบเบดเบเบฑเบ. เบงเบดเบเบตเบเบฒเบ SetValue เบเบทเบเปเบญเบตเปเบเบงเปเบฒเปเบฅเบฐเบเบธเบเบเบปเบเบเบดเบเบดเบเบดเบเบเบต. เบกเบนเบเบเปเบฒเปเบเปเบกเบฒเบฎเบญเบเบเบฒเบเบชเบฐเบซเบเบฒเบกเปเบเบปเปเบฒเบซเบกเบฒเบ, เบเบธเบเบเบปเบเบกเบตเบเบงเบฒเบกเบชเบธเบ. เบเบปเบเบชเบฐเบซเบผเบฒเบเบซเบผเบฒเบ - เบเบนเปเบญเบฒเบงเบธเปเบชเปเบฅเบฐเบเบตเบกเบเบฒเบเบเปเบฒเบเบฒ - เบเบฝเบเบชเปเบงเบเบเบฐเบซเบเบฒเบเบเบญเบเบเบงเบเปเบเบปเบฒเปเบเบทเปเบญเบเบฑเบเบเปเบฒเบ, เปเบเบเบญเบตเบเปเบชเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบเปเบเปเป "เบเบปเปเบงเปเบ" เปเบเบเบเบตเปเบเบญเบเบเบฐเปเบเบเบซเบเบถเปเบเปเบเบซเบฒเบเบปเบเบญเบทเปเบ. เปเบเบเปเบเบทเปเบญเปเบเปเปเบฅเปเบงเปเบกเปเบเบเบตเป: เบเบงเบเปเบฎเบปเบฒเปเบญเบปเบฒเบเบฒเบเบชเบฐเบซเบเบฒเบกเบเบฑเบเบซเบกเบปเบ, เปเบญเบปเบฒเบเบธเบเบชเบปเบกเบเบฑเบเบเบฑเบเบซเบกเบปเบ, เบเปเปเบฒเบกเบฑเบ: เบเปเบฒเบเบทเปเบเบญเบเบชเบฐเบกเบฒเบเบดเบเบเบฐเปเบเบเบเบปเบเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบฑเบ SetValue. เบเบฒเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเปเปเบเบปเบเปเบงเบฑเปเบเบเปเบญเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเบเบญเบเบซเบฒเบเบฑเบเบชเบดเบเบเบฒเบเบขเปเบฒเบเปเบเบเบฐเปเบเบเบซเบเบถเปเบ, เปเบเปเปเบเบดเบเปเบกเปเบเบงเปเบฒเปเบเบเบตเปเบเบตเปเบกเบตเบเบฒเบเบญเบญเบเบเบตเปเบเบฑเบเบเบธเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ. เบเบฐเบเบฒเบเบฒเบก / เบเบฑเบ.
เบเปเบญเบเปเบเปเปเบซเบฑเบเบเบปเบเบเบฐเบเบดเบเบเบปเบงเบงเบดเปเบเบฒเบฐ เปเบฅเบฐ เปเบเบเบเบตเปเบเบทเบเปเปเป เปเบเบเบเปเปเปเบเปเบเบฐเบเบญเบเบญเบฒเบงเบธเบเปเบเบฑเบกเบเบตเปเบเปเบงเบเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเปเบเบทเปเบญเบเบเบฑเบเบเบตเปเปเบเบปเปเบฒเบกเบฒเบเปเบญเบเบเบงเบเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบเปเบเบงเปเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเปเบซเบฑเบเบเบฐเบเบฒเบเบปเบเบเปเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเปเบฎเปเบเบฝเบเบชเบฒเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเบขเบนเปเปเบเบทเปเบญเบเบซเบผเบฑเบเบเบธเบเบเบฐเบชเบฒเบ, เบซเบฅเบฑเบเบเบฒเบเปเบเปเบเบญเบ, เบซเบฅเบฑเบเบเบฒเบเบชเบฑเบเบขเบฒ, เบเบทเบเบฑเบเบงเปเบฒเบเบตเปเบเบฐเปเบเปเบเบปเบงเบเปเป bacchanalia เบเปเปเบกเบฒ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบซเบฑเบเบเบฑเบเบเบญเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบถเปเบเบขเบนเปเปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบเบเบฑเปเบเบเปเบฒเบง. เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเปเปเบเปเบงเบฑเบเปเบเบเบเบฒเบเบฎเบปเปเบงเปเบซเบฅเบเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบปเบงเบเบดเบ, เปเบฅเบฐ, เบเปเบฒเปเบเบฑเบเปเบเปเบเป, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฝเบเปเบเปเบเปเบฝเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบฑเบ "เบเบตเปเบเบตเบเบตเปเบชเบธเบ" เบเปเบฒเบเปเบญเบเบชเบฒเบกเบฒเบเปเบญเบปเบฒเบกเบทเบเบญเบเบเปเบญเบเปเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบฒเบเบงเบฑเบเปเบเบเบเปเบฒเบญเบดเบเบเบตเปเปเบเปเบเบถเบเบชเบฒเบซเบฒเบฅเบทเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบฎเบฑเบเปเบซเปเบเปเบญเบเบชเบฑเบเบชเบปเบเบขเปเบฒเบเบเบดเบเบเบฑเบ.
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบดเบเบงเปเบฒเบซเบผเบฒเบเปเบเปเบฒเบ, เบญเปเบฒเบ Richter เบซเบผเบทเบเบฑเบเบญเบธเบเบปเบกเบเบฒเบเบญเบทเปเบเป, เปเบเปเบเบปเบเบเบฑเบเบเปเบฒเบเบฐเปเบซเบผเบเบเบตเปเบเบธเบเบดเบเปเบฒเบขเปเบฒเบเบชเบปเบกเบเบนเบเบงเปเบฒเบเบฒเบเบชเบฐเบเปเบญเบเปเบเบฅเบฐเบซเบฑเบเปเบกเปเบเบเบฐเบเบปเบเบเบฒเบเบเบตเปเบกเบตเบเบปเบเบเบฐเบเบปเบเบเบฒเบเบฅเบปเบเบเบตเปเบชเบธเบเบเปเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ.
เบเบฒเบเบชเบฐเบเปเบญเบเบเบฒเบเปเบเบเบฑเบเบเบฑเบเปเบซเป CLR เปเบเบเปเบฒเบเบชเบฐเบเบฒเปเบซเปเบเปเบเบทเปเบญเบเบญเบเบซเบฒเบชเบดเปเบเบเบตเปเปเบเบปเบฒเปเบเบปเปเบฒเบเปเบญเบเบเบฒเบ, เบเบถเบเบเปเปเบกเบนเบ metadata เบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ, parse, เปเบฅเบฐเบญเบทเปเบเป. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบฒเบเบชเบฐเบเปเบญเบเปเบเบเบฐเบเบฐเบเบตเป traversing เบฅเปเบฒเบเบฑเบเบเปเบฒเปเบเบชเบนเปเบเบฒเบเบเบฑเบเบชเบฑเบเบเปเบฒเบเบงเบเบเบฐเบซเบเบฒเบเปเบซเบเปเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ. เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบเปเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ, CLR เปเบเบตเบเปเบเบตเบ GC เปเบฅเบฐ friezes เปเบฅเบตเปเบกเบเบปเปเบ. เบกเบฑเบเบเบงเบเบเบฐเบเปเบฒเบขเปเบฒเบเบเบฐเปเบเปเบ, เปเบเบทเปเบญเบเปเบญเบ. เบเปเบฒเบเบงเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเปเบฒเบเบงเบเบซเบผเบงเบเบซเบผเบฒเบเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบฒเบเบเบฐเบฅเบดเบเบเบตเปเบเบฑเบเบชเบฐเปเบซเบกเบซเบผเบทเปเบเบทเปเบญเบเบเบฑเบเบเบฑเบเบเปเปเปเบเปเบเปเบญเบเบเบฑเบเบเบงเบฒเบกเบฅเปเบฒเบเปเบฒเปเบเบเบฒเบเบเบธเบเปเบเปเบเบชเบนเบ. เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเบงเบฒเบกเบเบปเบเบเปเบฒเบซเบผเบฒเบ, เบเปเบฒเบเบกเบฑเบเบเบฐเบชเบฑเบเปเบเบเปเบซเบฑเบเบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบ GC. เบเบฒเบเบชเบฐเบเปเบญเบเปเบกเปเบ, เปเบเบเบฒเบเบเบดเบเบชเบฐเบเบต, เปเบเบฑเบเบเปเบฒเบชเบตเปเบเบเบเบดเปเบชเบเบชเปเบฒเบฅเบฑเบเบฅเบฒเบง.
เปเบเบดเบเบขเปเบฒเบเปเบเบเปเปเบเบฒเบก, เบเบงเบเปเบฎเบปเบฒเบเบธเบเบเบปเบเปเบเป IoC containers เปเบฅเบฐ date mappers, เบซเบผเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฑเบเบญเบตเบเปเบชเปเบเบฒเบเบชเบฐเบเปเบญเบ, เปเบเปเบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเปเปเบกเบตเบเปเบฒเบเบฒเบกเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบกเบฑเบ. เบเปเป, เบเปเปเปเบกเปเบเบเปเบญเบเบงเปเบฒเบเบฒเบเปเบเบฐเบเปเบฒเบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเปเบฅเบฐเบเบฒเบเบเปเปเบกเบตเบเบปเบงเบเบปเบเบเบฒเบเบเบปเบงเปเบเบเบชเบฐเบเบฒเบเบเบฒเบเบเบตเปเบเปเบฒเบเบฑเบเบเบฒเบเบเบญเบเปเบกเปเบเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบเบซเบผเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเปเบชเบเบชเบฐเบฅเบฐเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบเปเบฅเบฐเบเบตเปเบเบเปเปเบเบฒเบก. เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเปเบฒเบเบเบฒเบ - เบกเบฑเบเบเปเปเบเปเปเบกเบตเบเบปเบเบเปเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเบซเบผเบฒเบ.
เบเบงเบฒเบกเบเบดเบเปเบฅเปเบงเปเบกเปเบเบงเปเบฒเปเบเบเบฎเปเบฒเบเบเบฒเบเบเบปเปเบงเปเบเบเบตเปเบชเบธเบเบเบตเปเบญเบตเบเปเบชเปเปเบเบฑเบเปเบเปเบฅเบขเบตเบเบฒเบเบชเบฐเบเปเบญเบเบเปเบฒเปเบเปเบเบธเบเบเบฐเปเบเบเบเบญเบ tricks เปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบกเบฑเบเบเบตเปเบเบตเบเบตเปเบชเบธเบ. เบเบปเบเบเบฐเบเบดเปเบฅเปเบงเบเบตเปเปเบกเปเบ cache. เปเบเบเบเบปเบเบเบฐเบเบดเปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเปเบฅเบฐเบเบนเปเปเบเบเบเบตเปเบฅเบงเบเบฅเบงเบกเบเบฒเบเบเบปเปเบเปเบกเปเบชเบฐเปเบเบเบญเบญเบ. automapper เบเบฝเบงเบเบฑเบเบฎเบฑเบเบชเบฒเบงเบฑเบเบเบฐเบเบฒเบเบธเบเบปเบกเบเบตเปเบกเบตเบเบฒเบเปเบเปเบเบเบฑเบเบเบตเปเบเบปเบเบเบฑเบเบเบฐเปเบเบเบเปเบฒเบเปเบเบตเปเบกเบตเบซเบเปเบฒเบเบตเปเบเบตเปเบชเบฒเบกเบฒเบเบเปเบฝเบเปเบเบฑเบเบญเบฑเบเบญเบทเปเบเปเบเบเบเปเปเบเปเบญเบเปเบเบซเบฒเบเบฒเบเบชเบฐเบเปเบญเบ.
เบเบตเปเบเบฑเบเบฅเบธเปเบเปเปเบเบงเปเบ? เปเบเบเบเบทเปเบเบเบฒเบเปเบฅเปเบง, เบเบตเปเบเปเปเปเบกเปเบเบชเบดเปเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฒเบเปเบซเบเบเบปเบเบเบตเปเปเบงเบเบตเบเบปเบงเบกเบฑเบเปเบญเบเปเบเปเปเบเบทเปเบญเบชเปเบฒเบเบฅเบฐเบซเบฑเบ JIT. เปเบกเบทเปเบญเบงเบดเบเบตเบเบฒเบเบเบทเบเปเบญเบตเปเบเปเบเบฑเบเบเบฑเปเบเบเปเบฒเบญเบดเบ, เบกเบฑเบเบเบทเบเบฅเบงเบเบฅเบงเบก (เปเบฅเบฐ, เปเบกเปเบเปเบฅเปเบง, เบเบฐเบเบงเบเบเบฒเบเบเบตเปเปเบกเปเบเบเปเปเปเบง); เปเบเบเบฒเบเปเบเบเปเปเบกเบฒ, เบเบฒเบเบเบงเบเบเบธเบกเบเบฐเบเบทเบเปเบญเบเปเบเบซเบฒเบงเบดเบเบตเบเบฒเบเบฅเบงเบเบฅเบงเบกเปเบฅเปเบง, เปเบฅเบฐเบเบฐเบเปเปเบกเบตเบเบฒเบเบเบถเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบชเปเบฒเบเบฑเบ.
เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบฅเบงเบเบฅเบงเบก JIT เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเปเบเปเบเบถเบเบเบดเบเปเบฒเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเปเบงเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบนเปเบฎเปเบงเบกเบเบฒเบเบเบญเบ AOT. เบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบฐเบกเบฒเบเปเบงเบเปเบซเบผเบทเบญเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบเปเบฅเบฐเบเบตเบเบตเป.
เบซเบผเบฑเบโเบเบฒเบโเปเบโเบเปเบฒโเบเบฒเบกโเบชเบฒโเบกเบฒเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบชเปเบฒเบโเบเบฑเปเบโเปเบเบโเบซเบเปเปโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
เบเปเบฒเบเบเบงเบเปเบเบฑเบเบเปเปเบกเบนเบเบชเบธเบเบเปเบฒเบเบเบญเบเบเบฒเบเบชเบฐเบเปเบญเบเปเบเบฑเบเบเบปเบงเปเบเบเบเบตเปเบกเบตเบซเบเปเบฒเบเบตเปเบฅเบงเบเบฅเบงเบก. เบกเบฑเบเบเบฑเบเปเบฎเบฑเบเปเบซเปเบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบเบตเปเบเบฐ cache เบงเบฑเบเบเบธเบเบตเปเบเปเบฒเปเบเบฑเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบกเบตเบเปเปเบกเบนเบเบเบฐเปเบเบเปเบเบเบปเบเปเบเบเบเบญเบเบเบฐเปเบเบเบเบญเบเบเปเบฒเบ, เบเบฐเบเบฑเบเบเบฒเบ, เบเบตเปเบเบทเบเปเบเบฑเบเปเบงเปเบเบญเบเบงเบฑเบเบเบธ.
เบกเบตเปเบซเบเบเบปเบเปเบเปเบฅเบทเปเบญเบเบเบตเป. เบเบงเบฒเบกเบฎเบนเปเบชเบถเบเบเบปเปเบงเปเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบงเปเบฒเบเปเบฒเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบชเบฒเบกเบฒเบเบฅเบงเบเบฅเบงเบกเปเบฅเบฐเปเบเบฑเบเปเบงเปเปเบเบเบฒเบเบเบงเบฒเบกเบเปเบฒ, เบกเบฑเบเบเบงเบเบเบฐเปเบฎเบฑเบ.
เปเบเบดเปเบเปเบเบเปเบฒเบเบซเบเปเบฒ, เบกเบฑเบเบเบงเบเบเบฐเปเบงเบปเปเบฒเบงเปเบฒ cache เปเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฒเบเบชเบฐเบเปเบญเบเบกเบตเบเปเปเบเบตเบเบญเบเบกเบฑเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเปเบฒเบเบเปเปเปเบเปเปเบเปเบงเบดเบเบตเบเบฒเบเบเบตเปเบชเบฐเปเบซเบเบตเบเบญเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบฒเบเบชเบฐเปเบเบเบญเบญเบ. เปเบเปเบเบดเบเปเบฅเปเบง, เปเบเบเบตเปเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฝเบเปเบเปเปเบฎเบฑเบเบเปเปเบฒเบชเบดเปเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบญเบเบเบนเปเบเบฝเบเบเบญเบเบเบปเบเบเบงเบฒเบกเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเบญเปเบฒเบเปเบเบดเบเบเปเบฒเบเปเบเบดเบ.
เปเบเบเบฑเบเบเบธเบเบฑเบเบเปเบฝเบงเบเบฑเบเบฅเบฐเบซเบฑเบ. เปเบซเปเปเบเบดเปเบเบเบปเบงเบขเปเบฒเบเบเบตเปเบญเบตเบเปเบชเปเบเบงเบฒเบกเปเบเบฑเบเบเบงเบเบเบตเปเบเปเบฒเบเบกเบฒเบเบญเบเบเปเบญเบเบเบตเปเบเปเบญเบเบเปเบญเบเบเบฐเปเบเบตเบเบเบฑเบเบเบฒเบเบเบฐเบฅเบดเบเบเบญเบเบชเบฐเบเบฒเบเบฑเบเบชเบดเบเปเบเบทเปเบญเบเบตเปเบฎเปเบฒเบเปเบฎเบ. เบซเบเปเบงเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเปเบกเปเบเบชเบปเบกเบกเบธเบเบเบดเบเบฒเบเปเบเบทเปเบญเบเปเปเบกเบตเปเบเบเบฒเบเปเบเบปเบฒ.
เบกเบตเบเบฒเบเปเบเบทเปเบญเปเบเปเปเบฅเปเบง. เปเบซเปโเบกเบตโเบเบฒเบโเบเบดเบโเบเปเปโ. เบกเบตเบเบปเบงเบญเบฑเบเบชเบญเบเบเบตเปเบกเบตเบฎเปเบฒเบเบเบฒเบเบกเบฒเบเบเบฐเบเบฒเบ, เบเบฒเบเบเบตเป parser เปเบฅเบฐ hydrator เบชเปเบฒเบเบเบฒเบเบเบดเบเบเปเปเบเบฝเบงเบเบฑเบเปเบซเบผเบปเปเบฒเบเบตเป. เบเบปเบเปเบฒเบเบกเบฒเบฎเบญเบ, เบเบงเบเปเบฎเบปเบฒเบญเปเบฒเบเบกเบฑเบ, เปเบเบเบกเบฑเบเบญเบญเบเปเบเบฑเบเบเบนเปเบเบต-เบกเบนเบเบเปเบฒ, เบชเปเบฒเบเบเบฒเบเบเบดเบเบเปเป, เปเบฅเบฐเบเบฑเบเบเบถเบเบกเบฑเบเปเบงเปเปเบเบเบฒเบเบเปเปเบกเบนเบ.
เบกเบฑเบเปเบเบฑเบเบเบฐเบเบปเบก. เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเบนเปเบเบดเบเบเปเปเบกเบตเบเบธเบเบชเบปเบกเบเบฑเบเบเบทเปเปเบเบฑเบก, เบญเบฒเบเบธเปเบฅเบฐเปเบเบฅเบฐเบชเบฑเบเบเบดเบเบเปเป. เบเปเปเบกเบนเบเบเบตเปเบเบทเบเบชเบปเปเบเปเบเบเบปเบเบซเบกเบฒเบ. เบเบธเบฅเบฐเบเบดเบเบเบฑเบเบเปเบญเบเบเบฒเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบทเปเบญเปเบซเปเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเบฐเปเบเปเบซเบกเปเบขเปเบฒเบเปเบงเบงเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบฒเบเปเบเบเบเบตเปเบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบเบซเบเปเบงเบเบเบฒเบเปเบเบปเปเบฒเปเบเปเบเบเบนเปเบขเบนเปเปเบเบเบปเบงเบซเบเบฑเบเบชเบท. เปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเบนเปเปเบเบเบนเป เปเบถเปเบ เบเบดเบกเบเบดเบเปเบเปเบกเปเปเบเบเบซเบผเบทเบเปเบฒเบเปเบญเบเบเบตเปเบเบฐเบเปเบญเบเบกเบฑเบ เบเบณ เปเบเบฑเบเบเปเบญเบเปเบเบตเบเปเบเบเบเบตเปเบเบฒเบเบเบนเปเบฎเปเบงเบกเบเบฒเบ เปเปเป, เบเบฑเบเบเบปเบงเปเบเบปเปเบฒเบเบฑเบเบฎเบนเบเปเบเบ เปเปเป. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเบฒเบเปเบเบทเปเบญเบกเปเบเบเปเบเบเบเบตเปเปเบซเบกเปเปเบเบฑเบ datafix เบฅเบฒเบเบฒเบเบทเบ. เบเบฑเปเบเปเบกเปเบ, เบเบปเบงเบขเปเบฒเบเบเบตเบงเบดเบ.
เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบดเบเบฑเบ, เบชเปเบฒเบเบเบฒเบเบเบปเบเบชเบญเบ. เปเบฎเบฑเบเบงเบฝเบ.
เบเปเบญเบเบเบฐเบเปเปเปเบซเปเบฅเบฐเบซเบฑเบ: เบกเบตเบซเบผเบฒเบเปเบซเบผเปเบ, เปเบฅเบฐเบเบงเบเบกเบฑเบเบกเบตเบขเบนเปเปเบ GitHub เบเปเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบปเบเบเบงเบฒเบก. เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบซเบผเบเบเบงเบเบกเบฑเบ, เบเปเบฅเบฐเบกเบฒเบเบเบงเบเปเบเบปเบฒเปเบเบตเบเบเบงเปเบฒเบเบฒเบเบฎเบฑเบเบฎเบนเปเปเบฅเบฐเบงเบฑเบเปเบเบเบเบงเบเบกเบฑเบ, เปเบเบฒเบฐเบงเปเบฒเบกเบฑเบเบเบฐเบชเบปเปเบเบเบปเบเบเบฐเบเบปเบเบเปเปเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเปเบฒเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเปเบซเปเบฅเบฐเบซเบฑเบเบเบญเบเบชเบญเบเบงเบดเบเบตเปเบกเปเปเบเบเบเบตเปเปเบเบเปเบเบฐ hydrator, เปเบเบดเปเบเบเบฒเบเบงเปเบฒเบเบฐเปเบง, เบเบฒเบ hydrator, เปเบเบดเปเบเบเบฒเบเบงเปเบฒเบเบฐเบเปเบฒ.
เปเบซเบเบเบปเบเบกเบตเบเบฑเปเบเบเบตเป: เบงเบดเบเบตเบเบฒเบเปเบกเปเปเบเบเปเบเปเบฎเบฑเบเบเบนเปเบเบตเปเบชเปเบฒเบเบเบถเปเบเปเบเบเปเบซเบเบเบปเบ parser เบเบทเปเบเบเบฒเบ. เบเบฑเปเบ LINQ เปเบกเปเบ parser เปเบฅเบฐเปเบซเบเบเบปเบเบเบทเปเบเบเบฒเบเบเบญเบ hydrator, เปเบเบดเปเบเปเบฎเบฑเบเปเบซเปเบเบฒเบเบฎเปเบญเบเบเปเบเบฑเบเบชเบฐเบเบฒเบเบเบฒเบเบเบฒเบเบเปเปเบกเบนเบเปเบฅเบฐเบเบฝเบเบเบฝเบเบเบตเบเบฑเบเบเบนเปเบเบฒเบ parser (เบชเปเบฒเบฅเบฑเบเบซเบเปเบฒเบเบตเปเปเบซเบผเบปเปเบฒเบเบตเปเบกเบตเบฅเบฐเบซเบฑเบเบเบตเปเบเปเปเบกเบต LINQ เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฝเบเบเบฝเบ). เบเปเปเปเบ, เบเบนเปเบเบทเบเบชเบปเปเบเบเบฑเบเบงเบดเบเบตเบเบฒเบ hydration เบเบปเปเบเบเปเปเบฅเบฐเบเปเบฒเบเบญเบเบเบนเปเปเบกเปเบเบเบทเบเบเปเบฒเบเบปเบเปเบซเปเบเบฑเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเบเบญเบเบซเบเปเบงเบเบเบฒเบ.
โเปเบงโ (Prefix Fast in benchmarks):
protected override Contact GetContact(PropertyToValueCorrelation[] correlations)
{
var contact = new Contact();
foreach (var setterMapItem in _proprtySettersMap)
{
var correlation = correlations.FirstOrDefault(x => x.PropertyName == setterMapItem.Key);
setterMapItem.Value(contact, correlation?.Value);
}
return contact;
}
เบเบฑเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบซเบฑเบเปเบเป, เบเบฒเบเปเบเบฑเบเบเปเบฒเปเบเบเบเบปเบเบเบตเปเบเบตเปเบกเบตเบเบธเบเบชเบปเบกเบเบฑเบเบเบญเบ setter เปเบกเปเบเบเบทเบเบเปเบฒเปเบเป - lambdas เบฅเบงเบเบฅเบงเบกเบเบตเปเปเบเบซเบฒเบซเบเปเบงเบเบเบฒเบ setter . เบชเปเบฒเบเปเบเบเบฅเบฐเบซเบฑเบเบเปเปเปเบเบเบตเป:
static FastContactHydrator()
{
var type = typeof(Contact);
foreach (var property in type.GetProperties())
{
_proprtySettersMap[property.Name] = GetSetterAction(property);
}
}
private static Action<Contact, string> GetSetterAction(PropertyInfo property)
{
var setterInfo = property.GetSetMethod();
var paramValueOriginal = Expression.Parameter(property.PropertyType, "value");
var paramEntity = Expression.Parameter(typeof(Contact), "entity");
var setterExp = Expression.Call(paramEntity, setterInfo, paramValueOriginal).Reduce();
var lambda = (Expression<Action<Contact, string>>)Expression.Lambda(setterExp, paramEntity, paramValueOriginal);
return lambda.Compile();
}
เปเบเบเบเบปเปเบงเปเบเบกเบฑเบเบเบฐเปเบเปเบ. เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบกเบเบธเบเบชเบปเบกเบเบฑเบ, เบชเปเบฒเบเบเบปเบงเปเบเบเบชเปเบฒเบฅเบฑเบเบเบงเบเปเบเบปเบฒเบเบตเปเปเบเบซเบฒเบเบนเปเบเบฑเปเบ, เปเบฅเบฐเบเบฐเบซเบเบฑเบเบเบงเบเบกเบฑเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเบซเบฒเปเบเปเบงเบฅเบฒเบเบตเปเบกเบตเบเบงเบฒเบกเบเปเบฒเปเบเบฑเบ.
"เบเปเบฒ" (เบเปเบฒเบเปเบฒเบซเบเปเบฒเบเปเบฒเปเบเบกเบฒเบเบเบฐเบเบฒเบ):
protected override Contact GetContact(PropertyToValueCorrelation[] correlations)
{
var contact = new Contact();
foreach (var property in _properties)
{
var correlation = correlations.FirstOrDefault(x => x.PropertyName == property.Name);
if (correlation?.Value == null)
continue;
property.SetValue(contact, correlation.Value);
}
return contact;
}
เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเบตเบเปเบฒเบกเบเบธเบเบชเบปเบกเบเบฑเบเปเบฅเบฐเปเบเบซเบฒ SetValue เปเบเบเบเบปเบ.
เปเบเบทเปเบญเบเบงเบฒเบกเบเบฑเบเปเบเบเปเบฅเบฐเปเบเบฑเบเบเบฒเบเบญเปเบฒเบเบญเบดเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฐเบเบดเบเบฑเบเบงเบดเบเบตเบเบฒเบ naive เบเบตเปเบเบฝเบเบเปเบฒเบเบญเบเบเบนเปเบเบงเบฒเบกเบชเปเบฒเบเบฑเบเบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบเบเบปเบเปเบเบปเปเบฒเปเบเปเบเบเปเบญเบเบเปเปเบกเบนเบเบซเบเปเบงเบเบเบฒเบ. เบเปเบฒเบเปเบฒเบซเบเปเบฒ - เบเบนเปเบกเบท.
เบเบญเบเบเบตเปเปเบซเปเปเบญเบปเบฒ BenchmarkDotNet เปเบฅเบฐเบเบงเบเปเบเบดเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ. เปเบฅเบฐเบเบฑเบเบเบตเบเบฑเบเปเบ ... (spoiler - เบเบตเปเบเปเปเปเบกเปเบเบเบปเบเปเบเปเบฎเบฑเบเบเบตเปเบเบทเบเบเปเบญเบ, เบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบกเปเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเป)
เบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเบซเบเบฑเบเบขเบนเปเบเบตเป? เบงเบดเบเบตเบเบฒเบเบเบตเปเบเบฐเบเบฐเบเบณเบเบณเปเปเบฒ Fast เบเบฐเบเบปเบเบงเปเบฒเบเปเบฒเบเบงเปเบฒเปเบเปเบเบทเบญเบเบเบธเบเบเบฑเปเบเบเบญเบเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบเบเบตเปเบกเบตเบเบณเบเบณเปเปเบฒเบเปเบฒ. เบเบตเปเปเบกเปเบเบเบงเบฒเบกเบเบดเบเบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบฒเบเบเบฑเบเบชเบฑเบเปเบฅเบฐเบเบงเบฒเบกเปเบงเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ. เปเบเบเบฒเบเบเบปเบเบเบฑเบเบเปเบฒเบก, เบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบเบเบตเปเบเบตเปเบชเบงเบเบเบฒเบกเปเบฅเบฐเบชเบฐเบซเบเปเบฒเบเบฒเบกเปเบเบเบเปเบฒเปเบเปเบงเบดเบเบตเบเบฒเบ LINQ เบเบตเปเบกเบตเบเบธเบเบเบฐเบชเบปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเปเบเปเบญเบเปเบเบเปเปเบเบฒเบกเบเบตเปเปเบเบฑเบเปเบเปเบเป, เปเบเบเบฒเบเบเบปเบเบเบฑเบเบเปเบฒเบก, เบซเบผเบธเบเบฅเบปเบเบเบปเบเบเบฐเบฅเบดเบเบขเปเบฒเบเบซเบผเบงเบเบซเบผเบฒเบ. เบเบงเบฒเบกเปเบเบเบเปเบฒเบเปเบกเปเบเบเปเบฒเบชเบฑเปเบ. เบเปเบฒเบญเปเบฝเบเบเปเปเบเปเบฝเบเปเบเบเบเปเบงเบเบเบปเบงเปเบฅเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบเบญเบเบเบฒเบเบเปเบฒเบ. เบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบฝเบเปเบเปเบขเบนเปเปเบเบเบฐเบซเบเบฒเบ. เบเปเบงเบ LINQ เบกเบฑเบเบเปเบฒเบเบงเปเบฒ 4 - 200 เปเบเบปเปเบฒ, เบกเบตเบเบตเปเปเบซเบเบทเปเบญเบซเบผเบฒเบเบเบงเปเบฒเปเบเบเบฐเบซเบเบฒเบเบเบฝเบงเบเบฑเบ.
เบเบฑเบเบเบธเบ
เบเปเบญเบเบเปเปเปเบเบทเปเบญเบเบฒเบเบญเบเบเปเบญเบ, เปเบเปเบชเปเบฒเบเบฑเบเบเบงเปเบฒเบเบฑเปเบ, เปเบเบทเปเบญเบเบฎเปเบงเบกเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเบทเปเบญเบเบฒเบเบญเบเบเปเบญเบเบซเบผเบทเบฅเบฐเบซเบฑเบเบเบญเบเบเปเบญเบ -
เบเบตเปเปเบกเปเบเบเบปเบเบเบญเบเบเบฒเบเบเบปเบเบชเบญเบเบเบทเบ:
เบชเบฐเบซเบผเบธเบ: เปเบกเบทเปเบญเบเปเบฒเปเบเปเบเบฒเบเบชเบฐเบเปเบญเบเปเบเบงเบดเบชเบฒเบซเบฐเบเบดเบ, เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบฒเบเบซเบฅเบญเบเบฅเบงเบเปเบเบเบชเบฐเปเบเบฒเบฐ - LINQ เบเบฐเบเบดเบเบเบปเบเบเบฐเบฅเบดเบเบซเบผเบฒเบ. เบขเปเบฒเบเปเบเบเปเบเบฒเบก, เปเบเบงเบดเบเบตเบเบฒเบเปเบซเบผเบเบชเบนเบเบเบตเปเบเปเบญเบเบเบฒเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบซเบเบฑเบเบเบฒเบเบชเบฐเบเปเบญเบเปเบเบฎเบนเบเปเบเบเบเบญเบเบเบปเบงเบเปเบฒเบเบปเบเปเบเบทเปเบญเบเบเบปเปเบเปเบฅเบฐเบเบนเปเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบ, เปเบเบดเปเบเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฐเปเบซเปเปเบซเบเบเบปเบ "เปเบง". เบงเบดเบเบตเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบฎเบฑเบเบชเบฒเบเบฑเบเบเบงเบฒเบกเบเบทเบเบซเบเบธเปเบเบเบญเบเบเบฒเบเบชเบฐเบเปเบญเบเปเบฅเบฐเบเบงเบฒเบกเปเบงเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ.
เบฅเบฐเบซเบฑเบเบกเบฒเบเบเบฐเบเบฒเบเปเบกเปเบเบกเบตเบขเบนเปเบเปเบญเบเบเบตเป. เบเบธเบเบเบปเบเบชเบฒเบกเบฒเบเบเบงเบเบเบทเบเบเบณเบชเบฑเบเบเบญเบเบเปเบญเบเปเบเป:
PS: เบฅเบฐเบซเบฑเบเปเบเบเบฒเบเบเบปเบเบชเบญเบเปเบเป IoC, เปเบฅเบฐเปเบ benchmarks เบกเบฑเบเปเบเปเปเบเบเบชเปเบฒเบเบเบตเปเบเบฑเบเปเบเบ. เบเบงเบฒเบกเบเบดเบเปเบฅเปเบงเปเบกเปเบเบงเปเบฒเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบชเบธเบเบเปเบฒเบเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฑเบเบเบฑเบเปเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบชเบปเปเบเบเบปเบเบเบฐเบเบปเบเบเปเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบฅเบฐเปเบฎเบฑเบเปเบซเปเบเบปเบเปเบเปเบฎเบฑเบเบเปเปเบกเบตเบชเบฝเบ.
PPS: เบเปเบเบญเบเปเบเบเบฑเบเบเบนเปเปเบเป
PPPS: เบเปเบเบญเบเปเบเบเบฑเบเบเบนเปเบญเปเบฒเบเบเบตเปเบฅเบฐเบกเบฑเบเบฅเบฐเบงเบฑเบเบเบตเปเปเบเปเบฅเบปเบเบฅเบธเปเบกเบเบญเบเปเบเบเปเบฅเบฐเบเบฒเบเบญเบญเบเปเบเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเปเบเบฑเบเปเบญเบเบฐเบเบฒเบเปเบฅเบฐเบเบงเบฒเบกเบชเบฐเบเบงเบเบชเบฐเบเบฒเบ. เบเบฒเบเบเบนเบเบเบญเบเบเบฒเบเบเปเบฒเบชเบฐเปเบซเบเบตเปเบฎเบฑเบเปเบซเปเบกเบตเบเบงเบฒเบกเบเบฒเบเบเบฐเบซเบเบฒเบซเบผเบฒเบ, เปเบเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบญเบปเบฒเบเปเบฒเบงเบดเบเบฒเบเปเบเบปเปเบฒเปเบเปเบเบเบฑเบเบเบต. เบเปเบญเบเบเป projectile.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com