เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปƒเบ™ Go เปเบฅเบฐเบฅเบฑเบเบชเบฐเบ™เบฐเบžเบดเป€เบชเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ

เบ—เปˆเบฒเบ™เบ„เบดเบ”เบงเปˆเบฒเบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบžเบฒเบเปƒเบ™ loop เปเบกเปˆเบ™เบ—เบฝเบšเป€เบ—เบปเปˆเบฒเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเป?

		
if a > b && c*2 > d {
	....
}
// ะธ
if a <= b  { 
  continue;
}
if c*2 > d {
 ....
}


เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ "เบเบฒเบ™เบญเบปเบšเบญเบธเปˆเบ™เบชเบฐเบซเบกเบญเบ‡"; เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ„เบนเปˆเบ—เบตเปˆเปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบญเบฒเป€เบฅเบ‚เบญเบ‡เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบก [-x ....x]. เบ‚เป‰เบญเบเบชเบปเบ‡เป„เบชเบงเปˆเบฒเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบˆเบฐเบ”เบตเบ‚เบถเป‰เบ™เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒเปƒเบ”เบ–เป‰เบฒเบ‚เป‰เบญเบเปƒเบŠเป‰เบเบฒเบ™เบ„เบนเบ™เบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เป‚เบ”เบ 1 เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ•เบปเบงเป€เบฅเบเปเบกเปˆเบ™เบ„เบนเปˆเบซเบผเบทเบšเปเปˆ.


//ัƒ ั‡ะตั‚ะฝั‹ั… ั‡ะธัะตะป ะฟะพัะปะตะดะฝะธะน ะฑะธั‚ ะฒัะตะณะดะฐ ั€ะฐะฒะตะฝ 0
value & 1 == 0
//vs ะบะปะฐััะธั‡ะตัะบะธะน ะผะตั‚ะพะด
value % 2 == 0

เบ›เบฐเบชเบปเบšเบเบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™ Go เปเบกเปˆเบ™เบšเปเปˆเบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡เบซเบผเบฒเบ, เบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ›เบตเปเบฅเบฐเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡, เบ‚เป‰เบญเบเป„เบ”เป‰เปƒเบŠเป‰เบกเบฑเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเป€เบฅเบทเป‰เบญเบเป†, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบขเปˆเบฒเบ‡เบ”เบฝเบง (เบ”เบต, เบšเบฒเบ‡เบ—เบต, เบเบปเบเป€เบงเบฑเป‰เบ™เป‚เบ„เบ‡เบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ http เบ—เบตเปˆเบกเบตเบเบฒเบ™เป‚เบซเบผเบ”เบชเบนเบ‡), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบญเบ. เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบกเบฑเบ™. เป€เบ›เบตเบ” GoLand เปเบฅเบฐเบ‚เบฝเบ™เปเบšเบšเบ—เบปเบ”เบชเบญเบšเบ‡เปˆเบฒเบเป†


package main
import (
	"fmt"
	"log"
	"math"
	"math/rand"
	"time"
)
const size = 100000000 //math.MaxInt32*2
type Result struct {
	Name     string
	Duration time.Duration
	Value    int32
}

func main() {
	log.Println("initial array capacity: " + fmt.Sprint(size))
	var maxValue int32
        // ะ‘ัƒะดะตะผ ะฒะฐั€ัŒะธั€ะพะฒะฐั‚ัŒ ะดะธะฐะฟะฐะทะพะฝ ั‡ะธัะตะป ะพั‚ ะผะธะฝะธะผะฐะปัŒะฝะพะณะพ 
        // ะดะพ ะผะฐะบัะธะผะฐะปัŒะฝะพะณะพ. ะงะตะผ ะผะตะฝัŒัˆะต ะดะธะฐะฟะฐะทะพะฝ, ั‚ะตะผ ะฑะพะปัŒัˆะต 
        // ะฟั€ะพั†ะตััะพั€ะฝะพะณะพ ะฒั€ะตะผะตะฝะธ ะฑัƒะดะตั‚ ัƒั…ะพะดะธั‚ัŒ ะฝะฐ ะพะฟะตั€ะฐั†ะธัŽ 
        // ัั€ะฐะฒะฝะตะฝะธั ั‚ะตะบัƒั‰ะตะณะพ ั‡ะธัะปะฐ, ั ั€ะฐะฝะตะต ะฝะฐะนะดะตะฝะฝั‹ะผ ะธ ะฝะฐะพะฑะพั€ะพั‚
	for maxValue = 128; maxValue < math.MaxInt32/2+1; maxValue = maxValue * 2 {
		test(maxValue)
	}
}

func test(maxValue int32) {
	log.Println("max threshold: " + fmt.Sprint(maxValue))
	arr := make([]int32, size)
	for i := range arr {
		arr[i] = rand.Int31n(maxValue)
                // ะฒ ั‚ะตัั‚ะพะฒั‹ั… ะดะฐะฝะฝั‹ั… ะฝะฐะผ ะฝัƒะถะฝั‹ ะธ ะพั‚ั€ะธั†ะฐั‚ะตะปัŒะฝั‹ะต ั‡ะธัะปะฐ 
		sign := rand.Intn(2)
		if sign == 1 {
			arr[i] = -arr[i]
		}
	}

        // ะทะฐะฟัƒัะบะฐะตะผ ั‚ะตัั‚ "ะดะตะปะตะฝะธะต ั ะพัั‚ะฐั‚ะบะพะผ"
	result := maxEvenDividing("maxEvenDividing", arr)
	log.Printf(result.Name+"t result: "+fmt.Sprint(result.Value)+"ttduration %s", result.Duration)

        // ะทะฐะฟัƒัะบะฐะตะผ ั‚ะตัั‚ "ะบะพะฝัŠัŽะฝะบั†ะธะธ"
	result = maxEvenConjunction("maxEvenConjunction", arr)
	log.Printf(result.Name+"t result: "+fmt.Sprint(result.Value)+"ttduration %s", result.Duration)
}

func maxEvenDividing(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value > current && value%2 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

func maxEvenConjunction(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value > current && value&1 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบฅเบฐเบ”เบฑเบšเบ—เบตเปˆเบชเบนเบ‡เบ‚เบถเป‰เบ™, เบ„เบงเบฒเบกเบœเบฑเบ™เบœเบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบกเบฑเบเบˆเบฐเบ›เบฒเบเบปเบ”เบ‚เบถเป‰เบ™.

เบ›เบฝเบšเบ—เบฝเบšmax threshold: 128
maxEvenDividing result: 126 duration 116.0067ms
maxEvenConjunction result: 126 duration 116.0066ms

max threshold: 16384
maxEvenDividing result: 16382 duration 115.0066ms
maxEvenConjunction result: 16382 duration 111.0064ms

......

max threshold: 8388608
maxEvenDividing result: 8388606 duration 109.0063ms
maxEvenConjunction result: 8388606 duration 109.0062ms

max threshold: 16777216
maxEvenDividing result: 16777214 duration 108.0062ms
maxEvenConjunction result: 16777214 duration 109.0062ms

max threshold: 33554432
maxEvenDividing result: 33554430 duration 114.0066ms
maxEvenConjunction result: 33554430 duration 110.0063ms

max threshold: 67108864
maxEvenDividing result: 67108860 duration 111.0064ms
maxEvenConjunction result: 67108860 duration 109.0062ms

max threshold: 134217728
maxEvenDividing result: 134217726 duration 108.0062ms
maxEvenConjunction result: 134217726 duration 109.0063ms

max threshold: 268435456
maxEvenDividing result: 268435446 duration 111.0063ms
maxEvenConjunction result: 268435446 duration 110.0063ms

เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบชเปเบฒเบฅเบฑเบšเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบŠเบธเบ”เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต (เปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰ i5-2540M เบ‚เบญเบ‡เบ‚เป‰เบญเบ) เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ›เบฐเบกเบฒเบ™ 20..30%, เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ–เบทเบเบเบถเบ”เป‚เบ”เบเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบˆเบฒเบ GoLand เปเบกเปˆเบ™เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบ. เบ›เบฐเบกเบฒเบ™ 813MB - เบญเบฑเบ™เบ™เบตเป‰เบเบฑเบ‡เบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบ‚เบญเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบเปเบฅเบฐเบ™เบตเบ—เบปเบ”เบชเบญเบšเปƒเบ™เปเบœเปˆเบ™เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ‚เบญเบšเป€เบ‚เบ”เปƒเบ™เบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเบˆเบฒเบเบเบฑเบ™เปเบฅเบฐเบเบฑเบ™.

เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบ”เป‰เบงเบเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบซเบ™เป‰เบญเบ, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบเป‰เป„เบ‚เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเบฐเบžเบฒเบš

		
if value > current && value&1 == 0 {
	current = value
}

เบชเบธเบ”

		
if value <= current {
        continue;
}
if value&1 == 0 {
	current = value
}

เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เบญเบตเบโ€‹เป€เบ—เบทเปˆเบญโ€‹เบซเบ™เบถเปˆเบ‡ ... เปเบฅเบฐโ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบขเบธเบ”โ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เปƒเบˆโ€‹เบซเบเบฑเบ‡ :)

เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบˆเบฐเป€เบฅเบตเปˆเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป„เบ›เป‚เบ”เบเป€เบ›เบตเป€เบŠเบฑเบ™/เบชเปˆเบงเบ™เบฎเป‰เบญเบเบ‚เบญเบ‡เป€เบ›เบตเป€เบŠเบฑเบ™, เปเบ•เปˆเป‚เบ”เบ 10..15%.

		
func maxEvenDividing2(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value <= current {
			continue
		}

		if value%2 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

func maxEvenConjunction2(name string, arr []int32) Result {
	start := time.Now()
	var current int32 = math.MinInt32
	for _, value := range arr {
		if value <= current {
			continue
		}
		if value&1 == 0 {
			current = value
		}
	}
	duration := time.Since(start)
	result := Result{name, duration, current}
	return result
}

เบ‚เป‰เบญเบเปเบฅเปˆเบ™เบกเบฑเบ™เปเบฅเบฐเป„เบ”เป‰เบฎเบนเบšเบ™เบตเป‰:เบ„เบงเบฒเบกเบญเบฒเบ”เบชเบฒเบกเบฒเบ” array เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™: 100000000

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 128
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 126 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 116.0066ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 126 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 79.0045ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 126 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 114.0065ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 126 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 83.0048ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 256
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 254 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 111.0063ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 254 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 254 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 110.0063ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 254 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 80.0046ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 512
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 510 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 114.0066ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 510 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 80.0045ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 510 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 110.0063ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 510 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 80.0046ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 1024
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 1022 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0063ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 1022 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 1022 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 111.0063ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 1022 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 81.0047ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 2048
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 2046 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 114.0065ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 2046 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 79.0045ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 2046 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 113.0065ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 2046 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 81.0046ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 4096
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 4094 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 114.0065ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 4094 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 80.0046ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 4094 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 111.0063ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 4094 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 78.0045ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 8192
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 8190 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 107.0062ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 8190 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 8190 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 111.0063ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 8190 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 16384
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 16382 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0063ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 16382 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 16382 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 108.0062ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 16382 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 32768
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 32766 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 112.0064ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 32766 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 32766 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0062ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 32766 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 78.0045ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 65536
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 65534 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0062ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 65534 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 75.0043ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 65534 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0063ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 65534 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 79.0045ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 131072
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 131070 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 108.0061ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 131070 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 76.0044ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 131070 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 110.0063ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 131070 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 80.0046ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 262144
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 262142 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 110.0063ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 262142 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 76.0044ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 262142 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 107.0061ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 262142 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 78.0044ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 524288
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 524286 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0062ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 524286 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 78.0045ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 524286 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0062ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 524286 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 80.0046ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 1048576
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 1048574 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0063ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 1048574 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 80.0045ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 1048574 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 114.0066ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 1048574 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 78.0044ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 2097152
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 2097150 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 111.0064ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 2097150 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 79.0045ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 2097150 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 112.0064ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 2097150 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 4194304
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 4194302 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 111.0063ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 4194302 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 78.0045ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 4194302 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 111.0063ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 4194302 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 8388608
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 8388606 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0062ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 8388606 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 78.0045ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 8388606 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 114.0065ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 8388606 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 78.0045ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 16777216
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 16777214 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0062ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 16777214 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 16777214 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0063ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 16777214 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 33554432
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 33554430 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 113.0065ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 33554430 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 78.0045ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 33554430 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 110.0063ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 33554430 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 80.0045ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 67108864
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 67108860 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 112.0064ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 67108860 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 77.0044ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 67108860 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 112.0064ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 67108860 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 80.0046ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 134217728
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 134217726 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0063ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 134217726 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 78.0044ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 134217726 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 114.0065ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 134217726 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 81.0047ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 268435456
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 268435446 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 111.0064ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 268435446 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 79.0045ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 268435446 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 114.0065ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 268435446 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 79.0045ms

เป€เบเบ™เบชเบนเบ‡เบชเบธเบ”: 536870912
maxEvenDividing เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 536870910 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 107.0062ms
maxEvenDividing2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 536870910 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 76.0043ms
maxEvenConjunction เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 536870910 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 109.0062ms
maxEvenConjunction2 เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: 536870910 เป„เบฅเบเบฐเป€เบงเบฅเบฒ 80.0046ms

เบ‚เป‰เบญเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡ Go compiler เบšเปเปˆเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเบชเบญเบ‡เบขเบนเปˆเบชเบฐเป€เบซเบกเบต, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบซเบผเบทเบšเบฒเบ‡เบ—เบตเบ•เบฒเบ‚เบญเบ‡เบ‚เป‰เบญเบเบžเบฝเบ‡เปเบ•เปˆเบกเบปเบงเปเบฅเบฐเบ‚เป‰เบญเบเบšเปเปˆเป€เบซเบฑเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบšเป? เบซเบผเบทเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบžเบดเป€เบชเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบซเป‰เบเบฑเบšเบœเบนเป‰เบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบšเป? เบ‚เป‰เบญเบเบˆเบฐเบ”เบตเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบ„เบดเบ”เป€เบซเบฑเบ™เบ—เบตเปˆเบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™.

PS: เปเบกเปˆเบ™เปเบฅเป‰เบง, เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบกเปˆเบงเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เปƒเบ™ Java 5 เปเบฅเบฐ Java 7/8 - เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบˆเบฐเปเบˆเป‰เบ‡, เป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™