แž›แž€แŸ’แžแžแžŽแŸ’แžŒแž“แŸ…แž€แŸ’แž“แžปแž„ Go แž“แžทแž„แž›แž€แŸ’แžแžŽแŸˆแž–แžทแžŸแŸแžŸแžšแž”แžŸแŸ‹แž–แžฝแž€แž‚แŸแŸ”

แžแžพโ€‹แžขแŸ’แž“แž€โ€‹แž‚แžทแžโ€‹แžแžถโ€‹แž‡แž˜แŸ’แžšแžพแžŸโ€‹แž‘แžถแŸ†แž„โ€‹แž–แžธแžšโ€‹แž“แŸแŸ‡โ€‹แžŸแž˜แŸ’แžšแžถแž”แŸ‹โ€‹แž›แž€แŸ’แžแžแžŽแŸ’แžŒโ€‹แž“แŸƒโ€‹แž€แžถแžšโ€‹แžŸแžถแž€แž›แŸ’แž”แž„โ€‹แž“แŸ…โ€‹แž€แŸ’แž“แžปแž„โ€‹แžšแž„แŸ’แžœแž„แŸ‹โ€‹แž˜แžฝแž™โ€‹แž‚แžบโ€‹แžŸแž˜แž˜แžผแž›โ€‹แž€แŸ’แž“แžปแž„โ€‹แž€แžถแžšโ€‹แžขแž“แžปแžœแžแŸ’แž?

		
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% แžแŸ’แž‰แžปแŸ†แž”แž“แŸ’แžแŸ‚แž˜แž€แžถแžšแžŸแžถแž€แž›แŸ’แž”แž„แž…แŸ†แž“แžฝแž“ 2 แž‘แŸ€แžแž™แŸ‰แžถแž„แž†แžถแž”แŸ‹แžšแž แŸแžŸแŸ–

		
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
}

แžแŸ’แž‰แžปแŸ†โ€‹แžšแžแŸ‹โ€‹แžœแžถโ€‹แž แžพแž™โ€‹แž‘แž‘แžฝแž›โ€‹แž”แžถแž“โ€‹แžšแžผแž”แž—แžถแž–โ€‹แž“แŸแŸ‡แŸ–แžŸแž˜แžแŸ’แžแž—แžถแž–แžขแžถแžšแŸแžŠแŸ†แž”แžผแž„: 100000000

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 126 แžšแž™แŸˆแž–แŸแž› 116.0066ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 126 แžšแž™แŸˆแž–แŸแž› 79.0045ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 126 แžšแž™แŸˆแž–แŸแž› 114.0065ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 126 แžšแž™แŸˆแž–แŸแž› 83.0048ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 254 แžšแž™แŸˆแž–แŸแž› 111.0063ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 254 แžšแž™แŸˆแž–แŸแž› 77.0044ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 254 แžšแž™แŸˆแž–แŸแž› 110.0063ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 254 แžšแž™แŸˆแž–แŸแž› 80.0046ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 510 แžšแž™แŸˆแž–แŸแž› 114.0066ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 510 แžšแž™แŸˆแž–แŸแž› 80.0045ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 510 แžšแž™แŸˆแž–แŸแž› 110.0063ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 510 แžšแž™แŸˆแž–แŸแž› 80.0046ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 1022 แžšแž™แŸˆแž–แŸแž› 109.0063ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 1022 แžšแž™แŸˆแž–แŸแž› 77.0044ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 1022 แžšแž™แŸˆแž–แŸแž› 111.0063ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 1022 แžšแž™แŸˆแž–แŸแž› 81.0047ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 2046 แžšแž™แŸˆแž–แŸแž› 114.0065ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 2046 แžšแž™แŸˆแž–แŸแž› 79.0045ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 2046 แžšแž™แŸˆแž–แŸแž› 113.0065ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 2046 แžšแž™แŸˆแž–แŸแž› 81.0046ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 4094 แžšแž™แŸˆแž–แŸแž› 114.0065ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 4094 แžšแž™แŸˆแž–แŸแž› 80.0046ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 4094 แžšแž™แŸˆแž–แŸแž› 111.0063ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 4094 แžšแž™แŸˆแž–แŸแž› 78.0045ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 8190 แžšแž™แŸˆแž–แŸแž› 107.0062ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 8190 แžšแž™แŸˆแž–แŸแž› 77.0044ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 8190 แžšแž™แŸˆแž–แŸแž› 111.0063ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 8190 แžšแž™แŸˆแž–แŸแž› 77.0044ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 16382 แžšแž™แŸˆแž–แŸแž› 109.0063ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 16382 แžšแž™แŸˆแž–แŸแž› 77.0044ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 16382 แžšแž™แŸˆแž–แŸแž› 108.0062ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 16382 แžšแž™แŸˆแž–แŸแž› 77.0044ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 32766 แžšแž™แŸˆแž–แŸแž› 112.0064ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 32766 แžšแž™แŸˆแž–แŸแž› 77.0044ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 32766 แžšแž™แŸˆแž–แŸแž› 109.0062ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 32766 แžšแž™แŸˆแž–แŸแž› 78.0045ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 65534 แžšแž™แŸˆแž–แŸแž› 109.0062ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 65534 แžšแž™แŸˆแž–แŸแž› 75.0043ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 65534 แžšแž™แŸˆแž–แŸแž› 109.0063ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 65534 แžšแž™แŸˆแž–แŸแž› 79.0045ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 131070 แžšแž™แŸˆแž–แŸแž› 108.0061ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 131070 แžšแž™แŸˆแž–แŸแž› 76.0044ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 131070 แžšแž™แŸˆแž–แŸแž› 110.0063ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 131070 แžšแž™แŸˆแž–แŸแž› 80.0046ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 262142 แžšแž™แŸˆแž–แŸแž› 110.0063ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 262142 แžšแž™แŸˆแž–แŸแž› 76.0044ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 262142 แžšแž™แŸˆแž–แŸแž› 107.0061ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 262142 แžšแž™แŸˆแž–แŸแž› 78.0044ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 524286 แžšแž™แŸˆแž–แŸแž› 109.0062ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 524286 แžšแž™แŸˆแž–แŸแž› 78.0045ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 524286 แžšแž™แŸˆแž–แŸแž› 109.0062ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 524286 แžšแž™แŸˆแž–แŸแž› 80.0046ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 1048574 แžšแž™แŸˆแž–แŸแž› 109.0063ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 1048574 แžšแž™แŸˆแž–แŸแž› 80.0045ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 1048574 แžšแž™แŸˆแž–แŸแž› 114.0066ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 1048574 แžšแž™แŸˆแž–แŸแž› 78.0044ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 2097150 แžšแž™แŸˆแž–แŸแž› 111.0064ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 2097150 แžšแž™แŸˆแž–แŸแž› 79.0045ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 2097150 แžšแž™แŸˆแž–แŸแž› 112.0064ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 2097150 แžšแž™แŸˆแž–แŸแž› 77.0044ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 4194302 แžšแž™แŸˆแž–แŸแž› 111.0063ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 4194302 แžšแž™แŸˆแž–แŸแž› 78.0045ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 4194302 แžšแž™แŸˆแž–แŸแž› 111.0063ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 4194302 แžšแž™แŸˆแž–แŸแž› 77.0044ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 8388606 แžšแž™แŸˆแž–แŸแž› 109.0062ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 8388606 แžšแž™แŸˆแž–แŸแž› 78.0045ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 8388606 แžšแž™แŸˆแž–แŸแž› 114.0065ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 8388606 แžšแž™แŸˆแž–แŸแž› 78.0045ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 16777214 แžšแž™แŸˆแž–แŸแž› 109.0062ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 16777214 แžšแž™แŸˆแž–แŸแž› 77.0044ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 16777214 แžšแž™แŸˆแž–แŸแž› 109.0063ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 16777214 แžšแž™แŸˆแž–แŸแž› 77.0044ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 33554430 แžšแž™แŸˆแž–แŸแž› 113.0065ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 33554430 แžšแž™แŸˆแž–แŸแž› 78.0045ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 33554430 แžšแž™แŸˆแž–แŸแž› 110.0063ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 33554430 แžšแž™แŸˆแž–แŸแž› 80.0045ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 67108860 แžšแž™แŸˆแž–แŸแž› 112.0064ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 67108860 แžšแž™แŸˆแž–แŸแž› 77.0044ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 67108860 แžšแž™แŸˆแž–แŸแž› 112.0064ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 67108860 แžšแž™แŸˆแž–แŸแž› 80.0046ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 134217726 แžšแž™แŸˆแž–แŸแž› 109.0063ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 134217726 แžšแž™แŸˆแž–แŸแž› 78.0044ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 134217726 แžšแž™แŸˆแž–แŸแž› 114.0065ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 134217726 แžšแž™แŸˆแž–แŸแž› 81.0047ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› maxEvenDividing: 268435446 แžšแž™แŸˆแž–แŸแž› 111.0064ms
maxEvenDividing2 แž›แž‘แŸ’แž’แž•แž›แŸ– 268435446 แžšแž™แŸˆแž–แŸแž› 79.0045ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction: 268435446 แžšแž™แŸˆแž–แŸแž› 114.0065ms
แž›แž‘แŸ’แž’แž•แž› maxEvenConjunction2: 268435446 แžšแž™แŸˆแž–แŸแž› 79.0045ms

แž€แž˜แŸ’แžšแžทแžแžขแžแžทแž”แžšแž˜แžถแŸ– แŸกแŸขแŸจ
แž›แž‘แŸ’แž’แž•แž› 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

แž”แž“แŸ’แžแŸ‚แž˜แž˜แžแžทแž™แŸ„แž”แž›แŸ‹