Compare commits
No commits in common. "b0bf9100a6896addeca426853a98a294dea57ca6" and "47a4c95f3e35cc6e85b5182e3557cd19102502eb" have entirely different histories.
b0bf9100a6
...
47a4c95f3e
75
1brc.go
75
1brc.go
@ -2,14 +2,12 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"hash/fnv"
|
"hash/fnv"
|
||||||
"log"
|
"log"
|
||||||
"math"
|
"math"
|
||||||
"os"
|
"os"
|
||||||
"runtime/pprof"
|
"runtime/pprof"
|
||||||
"slices"
|
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
@ -23,7 +21,7 @@ const benchFile = "results.txt"
|
|||||||
|
|
||||||
const profile = false
|
const profile = false
|
||||||
|
|
||||||
var nGoRoutine = 128
|
var nGoRoutine = 64
|
||||||
|
|
||||||
const maxSeekLen = int64(100)
|
const maxSeekLen = int64(100)
|
||||||
|
|
||||||
@ -34,17 +32,15 @@ type partitionRange struct {
|
|||||||
|
|
||||||
type resultSet map[uint64]result
|
type resultSet map[uint64]result
|
||||||
|
|
||||||
type fastResultSet struct {
|
type fRS struct {
|
||||||
v []result
|
v []result
|
||||||
keys []uint64
|
keys []uint64
|
||||||
size int
|
size int
|
||||||
}
|
}
|
||||||
|
|
||||||
// this is actually awful. we have ~412 unique keys for our specific data set, and we require f**kin' 100x space because
|
func newFRS() *fRS {
|
||||||
// our fast hash collides like it was designed to, but this one works for
|
|
||||||
func newFRS() *fastResultSet {
|
|
||||||
const size = 50000
|
const size = 50000
|
||||||
return &fastResultSet{v: make([]result, size), keys: make([]uint64, size)}
|
return &fRS{v: make([]result, size), keys: make([]uint64, size)}
|
||||||
}
|
}
|
||||||
|
|
||||||
type result struct {
|
type result struct {
|
||||||
@ -52,8 +48,7 @@ type result struct {
|
|||||||
count float64
|
count float64
|
||||||
min float64
|
min float64
|
||||||
max float64
|
max float64
|
||||||
sum float64
|
rAvg float64
|
||||||
//rAvg float64
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var count = int64(0)
|
var count = int64(0)
|
||||||
@ -85,7 +80,7 @@ func oneBRC() {
|
|||||||
|
|
||||||
parts := createPartitions(bits, '\n', nGoRoutine)
|
parts := createPartitions(bits, '\n', nGoRoutine)
|
||||||
wg := &sync.WaitGroup{}
|
wg := &sync.WaitGroup{}
|
||||||
results := make([]*fastResultSet, len(parts))
|
results := make([]*fRS, len(parts))
|
||||||
|
|
||||||
for i, part := range parts {
|
for i, part := range parts {
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
@ -147,7 +142,7 @@ func stopProfiling(f *os.File) {
|
|||||||
f.Close()
|
f.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
func workerComputePartition(aData []byte, wPart partitionRange, workerNumber int, container []*fastResultSet, wg *sync.WaitGroup) {
|
func workerComputePartition(aData []byte, wPart partitionRange, workerNumber int, container []*fRS, wg *sync.WaitGroup) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
const delimiter = byte(';')
|
const delimiter = byte(';')
|
||||||
|
|
||||||
@ -191,8 +186,7 @@ func workerComputePartition(aData []byte, wPart partitionRange, workerNumber int
|
|||||||
}
|
}
|
||||||
r.count += 1.0
|
r.count += 1.0
|
||||||
|
|
||||||
//r.rAvg = ((r.rAvg * (r.count - 1.0)) + temp) / r.count
|
r.rAvg = ((r.rAvg * (r.count - 1.0)) + temp) / r.count
|
||||||
r.sum = r.sum + temp
|
|
||||||
|
|
||||||
if temp > r.max {
|
if temp > r.max {
|
||||||
r.max = temp
|
r.max = temp
|
||||||
@ -252,15 +246,14 @@ func f2CharToInt(b1 byte, b2 byte) int {
|
|||||||
|
|
||||||
func seekNextNewLine(b []byte, part partitionRange, last int64) int64 {
|
func seekNextNewLine(b []byte, part partitionRange, last int64) int64 {
|
||||||
const step = 8
|
const step = 8
|
||||||
|
|
||||||
for i := last + step; i < part.end; {
|
for i := last + step; i < part.end; {
|
||||||
switch b[i] {
|
switch b[i] {
|
||||||
case '\n':
|
case '\n':
|
||||||
return i + 1
|
return i + 1
|
||||||
case '\r':
|
case '\r':
|
||||||
return i + 2
|
return i + 2
|
||||||
case '.':
|
case ';': // this will be minimum [;0.0\r]
|
||||||
return i + 4
|
i += 5
|
||||||
default:
|
default:
|
||||||
i += 2
|
i += 2
|
||||||
}
|
}
|
||||||
@ -346,8 +339,7 @@ func (r *result) merge(other *result) {
|
|||||||
r.min = other.min
|
r.min = other.min
|
||||||
}
|
}
|
||||||
|
|
||||||
//r.rAvg = ((r.rAvg * r.count) + (other.rAvg * other.count)) / (r.count + other.count)
|
r.rAvg = ((r.rAvg * r.count) + (other.rAvg * other.count)) / (r.count + other.count)
|
||||||
r.sum += other.sum
|
|
||||||
r.count += other.count
|
r.count += other.count
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,38 +356,7 @@ func (rs resultSet) merge(other resultSet) {
|
|||||||
rs[k] = tr
|
rs[k] = tr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func (rs resultSet) Report() string {
|
|
||||||
bldr := &strings.Builder{}
|
|
||||||
keyHist := make(map[int][]string)
|
|
||||||
for _, v := range rs {
|
|
||||||
name := string(v.name)
|
|
||||||
key := len(name)
|
|
||||||
container, ok := keyHist[key]
|
|
||||||
if !ok {
|
|
||||||
container = []string{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if !slices.Contains(container, name) {
|
|
||||||
container = append(container, name)
|
|
||||||
keyHist[key] = container
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
keyList := []int{}
|
|
||||||
|
|
||||||
for k := range keyHist {
|
|
||||||
keyList = append(keyList, k)
|
|
||||||
}
|
|
||||||
|
|
||||||
slices.Sort(keyList)
|
|
||||||
|
|
||||||
for _, key := range keyList {
|
|
||||||
b, _ := json.Marshal(keyHist[key])
|
|
||||||
bldr.WriteString(fmt.Sprintf("[%d]{%s}\n", key, string(b)))
|
|
||||||
}
|
|
||||||
|
|
||||||
return bldr.String()
|
|
||||||
}
|
|
||||||
func (rs resultSet) String() string {
|
func (rs resultSet) String() string {
|
||||||
keys := make([]string, 0, len(rs))
|
keys := make([]string, 0, len(rs))
|
||||||
|
|
||||||
@ -416,7 +377,7 @@ func (rs resultSet) String() string {
|
|||||||
b.WriteString("=")
|
b.WriteString("=")
|
||||||
b.WriteString(fmt.Sprintf("%.1f", r.min))
|
b.WriteString(fmt.Sprintf("%.1f", r.min))
|
||||||
b.WriteString("/")
|
b.WriteString("/")
|
||||||
b.WriteString(fmt.Sprintf("%.1f", r.sum/r.count))
|
b.WriteString(fmt.Sprintf("%.1f", r.rAvg))
|
||||||
b.WriteString("/")
|
b.WriteString("/")
|
||||||
b.WriteString(fmt.Sprintf("%.1f", r.max))
|
b.WriteString(fmt.Sprintf("%.1f", r.max))
|
||||||
if i < len(keys)-1 {
|
if i < len(keys)-1 {
|
||||||
@ -426,23 +387,25 @@ func (rs resultSet) String() string {
|
|||||||
return b.String()
|
return b.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fastResultSet) get(key uint64) (result, bool) {
|
func (f *fRS) get(key uint64) (result, bool) {
|
||||||
p := f.v[f.keyMap(key)]
|
p := f.v[f.keyMap(key)]
|
||||||
return p, p.name != nil
|
return p, p.name != nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fastResultSet) put(key uint64, v result) {
|
func (f *fRS) put(key uint64, v result) {
|
||||||
idx := f.keyMap(key)
|
idx := f.keyMap(key)
|
||||||
f.v[idx] = v
|
f.v[idx] = v
|
||||||
f.keys[idx] = key
|
f.keys[idx] = key
|
||||||
f.size += 1
|
f.size += 1
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fastResultSet) keyMap(key uint64) uint64 {
|
func (f *fRS) keyMap(key uint64) uint64 {
|
||||||
|
//a := key & math.MaxUint32
|
||||||
|
//b := (key >> 32) & math.MaxUint32
|
||||||
return (key) % uint64(len(f.v))
|
return (key) % uint64(len(f.v))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fastResultSet) getKeys() []uint64 {
|
func (f *fRS) getKeys() []uint64 {
|
||||||
keys := make([]uint64, 0, f.size)
|
keys := make([]uint64, 0, f.size)
|
||||||
for _, k := range f.keys {
|
for _, k := range f.keys {
|
||||||
if k > 0 {
|
if k > 0 {
|
||||||
@ -452,7 +415,7 @@ func (f *fastResultSet) getKeys() []uint64 {
|
|||||||
return keys
|
return keys
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *fastResultSet) toResultSet() resultSet {
|
func (f *fRS) toResultSet() resultSet {
|
||||||
rs := make(resultSet)
|
rs := make(resultSet)
|
||||||
for _, key := range f.getKeys() {
|
for _, key := range f.getKeys() {
|
||||||
v, _ := f.get(key)
|
v, _ := f.get(key)
|
||||||
|
|||||||
413
results.txt
413
results.txt
@ -1,413 +0,0 @@
|
|||||||
Abha=-29.8/18.0/69.7,
|
|
||||||
Abidjan=-26.4/26.0/78.5,
|
|
||||||
Abéché=-20.8/29.4/77.6,
|
|
||||||
Accra=-29.5/26.4/78.0,
|
|
||||||
Addis Ababa=-35.0/16.0/63.4,
|
|
||||||
Adelaide=-35.7/17.3/69.2,
|
|
||||||
Aden=-19.4/29.1/77.5,
|
|
||||||
Ahvaz=-27.1/25.4/73.8,
|
|
||||||
Albuquerque=-36.6/14.0/66.0,
|
|
||||||
Alexandra=-43.1/11.0/61.8,
|
|
||||||
Alexandria=-33.3/20.0/69.9,
|
|
||||||
Algiers=-28.7/18.2/66.2,
|
|
||||||
Alice Springs=-34.5/21.0/74.5,
|
|
||||||
Almaty=-43.7/10.0/59.1,
|
|
||||||
Amsterdam=-42.3/10.2/64.7,
|
|
||||||
Anadyr=-56.1/-6.9/42.9,
|
|
||||||
Anchorage=-46.3/2.8/51.9,
|
|
||||||
Andorra la Vella=-42.1/9.8/61.1,
|
|
||||||
Ankara=-39.8/12.0/63.2,
|
|
||||||
Antananarivo=-35.1/17.9/64.9,
|
|
||||||
Antsiranana=-26.4/25.2/73.2,
|
|
||||||
Arkhangelsk=-45.7/1.3/51.5,
|
|
||||||
Ashgabat=-32.0/17.1/63.2,
|
|
||||||
Asmara=-35.6/15.6/66.3,
|
|
||||||
Assab=-22.4/30.5/82.3,
|
|
||||||
Astana=-48.1/3.5/57.7,
|
|
||||||
Athens=-30.4/19.2/68.6,
|
|
||||||
Atlanta=-36.9/17.0/72.6,
|
|
||||||
Auckland=-33.3/15.2/67.3,
|
|
||||||
Austin=-30.0/20.7/70.0,
|
|
||||||
Baghdad=-27.9/22.8/71.9,
|
|
||||||
Baguio=-30.6/19.5/71.2,
|
|
||||||
Baku=-31.8/15.1/66.3,
|
|
||||||
Baltimore=-35.7/13.1/61.4,
|
|
||||||
Bamako=-19.8/27.8/75.8,
|
|
||||||
Bangkok=-21.4/28.6/82.9,
|
|
||||||
Bangui=-23.1/26.0/80.5,
|
|
||||||
Banjul=-24.1/26.0/74.1,
|
|
||||||
Barcelona=-42.6/18.2/67.3,
|
|
||||||
Bata=-23.3/25.1/73.2,
|
|
||||||
Batumi=-37.5/14.0/61.7,
|
|
||||||
Beijing=-36.3/12.9/67.3,
|
|
||||||
Beirut=-31.4/20.9/72.3,
|
|
||||||
Belgrade=-35.0/12.5/68.4,
|
|
||||||
Belize City=-20.8/26.7/77.6,
|
|
||||||
Benghazi=-30.7/19.9/67.8,
|
|
||||||
Bergen=-41.5/7.7/59.1,
|
|
||||||
Berlin=-43.9/10.3/57.9,
|
|
||||||
Bilbao=-33.4/14.7/65.3,
|
|
||||||
Birao=-20.7/26.5/78.8,
|
|
||||||
Bishkek=-36.8/11.3/58.9,
|
|
||||||
Bissau=-19.8/27.0/80.1,
|
|
||||||
Blantyre=-26.5/22.2/72.2,
|
|
||||||
Bloemfontein=-34.3/15.6/64.4,
|
|
||||||
Boise=-38.9/11.4/61.8,
|
|
||||||
Bordeaux=-33.9/14.2/64.7,
|
|
||||||
Bosaso=-18.1/30.0/80.7,
|
|
||||||
Boston=-38.9/10.9/57.8,
|
|
||||||
Bouaké=-24.1/26.0/76.8,
|
|
||||||
Bratislava=-46.6/10.5/58.4,
|
|
||||||
Brazzaville=-23.9/25.0/73.9,
|
|
||||||
Bridgetown=-21.9/27.0/76.5,
|
|
||||||
Brisbane=-32.1/21.4/69.3,
|
|
||||||
Brussels=-38.7/10.5/58.1,
|
|
||||||
Bucharest=-43.4/10.8/66.2,
|
|
||||||
Budapest=-38.5/11.3/61.0,
|
|
||||||
Bujumbura=-25.9/23.8/73.0,
|
|
||||||
Bulawayo=-29.4/18.9/76.0,
|
|
||||||
Burnie=-36.0/13.1/64.3,
|
|
||||||
Busan=-34.1/15.0/64.5,
|
|
||||||
Cabo San Lucas=-28.1/23.9/73.5,
|
|
||||||
Cairns=-29.8/25.0/73.7,
|
|
||||||
Cairo=-28.8/21.4/69.1,
|
|
||||||
Calgary=-48.4/4.4/53.1,
|
|
||||||
Canberra=-40.1/13.1/62.6,
|
|
||||||
Cape Town=-39.4/16.2/64.8,
|
|
||||||
Changsha=-35.1/17.4/69.2,
|
|
||||||
Charlotte=-30.7/16.1/68.8,
|
|
||||||
Chiang Mai=-25.3/25.8/75.2,
|
|
||||||
Chicago=-39.5/9.8/62.0,
|
|
||||||
Chihuahua=-34.9/18.6/66.6,
|
|
||||||
Chittagong=-22.9/25.9/76.9,
|
|
||||||
Chișinău=-41.2/10.2/59.0,
|
|
||||||
Chongqing=-29.5/18.6/67.4,
|
|
||||||
Christchurch=-39.7/12.2/64.7,
|
|
||||||
City of San Marino=-38.6/11.8/59.6,
|
|
||||||
Colombo=-23.5/27.4/78.9,
|
|
||||||
Columbus=-36.0/11.7/61.6,
|
|
||||||
Conakry=-29.9/26.4/73.0,
|
|
||||||
Copenhagen=-41.2/9.1/60.1,
|
|
||||||
Cotonou=-19.5/27.2/74.9,
|
|
||||||
Cracow=-38.0/9.3/57.2,
|
|
||||||
Da Lat=-29.8/17.9/64.8,
|
|
||||||
Da Nang=-24.7/25.8/75.5,
|
|
||||||
Dakar=-27.7/24.0/76.2,
|
|
||||||
Dallas=-32.6/19.0/73.3,
|
|
||||||
Damascus=-31.0/17.0/67.0,
|
|
||||||
Dampier=-28.2/26.4/76.2,
|
|
||||||
Dar es Salaam=-24.7/25.8/80.0,
|
|
||||||
Darwin=-27.9/27.6/77.3,
|
|
||||||
Denpasar=-29.5/23.7/72.6,
|
|
||||||
Denver=-40.8/10.4/60.1,
|
|
||||||
Detroit=-41.9/10.0/62.6,
|
|
||||||
Dhaka=-25.0/25.9/76.1,
|
|
||||||
Dikson=-58.2/-11.1/39.1,
|
|
||||||
Dili=-21.2/26.6/75.3,
|
|
||||||
Djibouti=-19.5/29.9/80.7,
|
|
||||||
Dodoma=-31.9/22.7/72.6,
|
|
||||||
Dolisie=-27.5/24.0/75.1,
|
|
||||||
Douala=-27.5/26.7/76.0,
|
|
||||||
Dubai=-22.1/26.9/76.9,
|
|
||||||
Dublin=-37.1/9.8/60.8,
|
|
||||||
Dunedin=-38.5/11.1/63.4,
|
|
||||||
Durban=-31.9/20.6/68.8,
|
|
||||||
Dushanbe=-31.5/14.7/66.3,
|
|
||||||
Edinburgh=-40.5/9.3/60.9,
|
|
||||||
Edmonton=-47.7/4.2/53.5,
|
|
||||||
El Paso=-32.2/18.1/65.2,
|
|
||||||
Entebbe=-35.3/21.0/70.6,
|
|
||||||
Erbil=-31.5/19.5/73.8,
|
|
||||||
Erzurum=-43.1/5.1/53.7,
|
|
||||||
Fairbanks=-49.4/-2.3/48.3,
|
|
||||||
Fianarantsoa=-32.6/17.9/64.7,
|
|
||||||
Flores, Petén=-23.2/26.4/76.4,
|
|
||||||
Frankfurt=-40.2/10.6/60.3,
|
|
||||||
Fresno=-39.1/17.9/68.3,
|
|
||||||
Fukuoka=-31.2/17.0/68.8,
|
|
||||||
Gaborone=-29.1/21.0/70.6,
|
|
||||||
Gabès=-28.6/19.5/68.1,
|
|
||||||
Gagnoa=-25.2/26.0/79.0,
|
|
||||||
Gangtok=-34.3/15.2/67.2,
|
|
||||||
Garissa=-19.9/29.3/76.3,
|
|
||||||
Garoua=-21.1/28.3/78.2,
|
|
||||||
George Town=-19.6/27.9/79.8,
|
|
||||||
Ghanzi=-26.0/21.4/71.6,
|
|
||||||
Gjoa Haven=-65.5/-14.4/36.9,
|
|
||||||
Guadalajara=-29.4/20.9/72.9,
|
|
||||||
Guangzhou=-26.8/22.4/72.7,
|
|
||||||
Guatemala City=-29.0/20.4/69.1,
|
|
||||||
Halifax=-40.4/7.5/57.3,
|
|
||||||
Hamburg=-39.3/9.7/56.2,
|
|
||||||
Hamilton=-37.4/13.8/66.4,
|
|
||||||
Hanga Roa=-34.4/20.5/67.9,
|
|
||||||
Hanoi=-22.8/23.6/73.3,
|
|
||||||
Harare=-31.1/18.4/69.0,
|
|
||||||
Harbin=-44.3/5.0/56.6,
|
|
||||||
Hargeisa=-26.8/21.7/71.2,
|
|
||||||
Hat Yai=-24.0/27.0/77.2,
|
|
||||||
Havana=-30.2/25.2/78.2,
|
|
||||||
Helsinki=-45.9/5.9/53.1,
|
|
||||||
Heraklion=-32.2/18.9/68.6,
|
|
||||||
Hiroshima=-31.5/16.3/71.3,
|
|
||||||
Ho Chi Minh City=-24.0/27.4/76.7,
|
|
||||||
Hobart=-43.0/12.7/61.7,
|
|
||||||
Hong Kong=-27.0/23.3/72.8,
|
|
||||||
Honiara=-26.1/26.5/75.6,
|
|
||||||
Honolulu=-27.1/25.4/72.8,
|
|
||||||
Houston=-26.1/20.8/73.7,
|
|
||||||
Ifrane=-36.0/11.4/58.4,
|
|
||||||
Indianapolis=-40.7/11.8/59.8,
|
|
||||||
Iqaluit=-59.5/-9.3/42.5,
|
|
||||||
Irkutsk=-51.1/1.0/51.9,
|
|
||||||
Istanbul=-38.2/13.9/61.5,
|
|
||||||
Jacksonville=-26.9/20.3/70.0,
|
|
||||||
Jakarta=-26.8/26.7/76.9,
|
|
||||||
Jayapura=-23.3/27.0/77.6,
|
|
||||||
Jerusalem=-30.9/18.3/71.8,
|
|
||||||
Johannesburg=-35.0/15.5/66.2,
|
|
||||||
Jos=-27.5/22.8/69.6,
|
|
||||||
Juba=-19.9/27.8/76.5,
|
|
||||||
Kabul=-36.3/12.1/62.9,
|
|
||||||
Kampala=-32.6/20.0/70.4,
|
|
||||||
Kandi=-23.3/27.7/82.3,
|
|
||||||
Kankan=-24.4/26.5/74.4,
|
|
||||||
Kano=-23.3/26.4/78.9,
|
|
||||||
Kansas City=-35.2/12.5/67.2,
|
|
||||||
Karachi=-22.8/26.0/76.4,
|
|
||||||
Karonga=-23.9/24.4/80.8,
|
|
||||||
Kathmandu=-31.7/18.3/66.0,
|
|
||||||
Khartoum=-20.4/29.9/82.7,
|
|
||||||
Kingston=-21.9/27.4/76.6,
|
|
||||||
Kinshasa=-27.9/25.3/79.2,
|
|
||||||
Kolkata=-20.4/26.7/79.3,
|
|
||||||
Kuala Lumpur=-27.1/27.3/74.7,
|
|
||||||
Kumasi=-25.0/26.0/75.6,
|
|
||||||
Kunming=-31.8/15.7/66.9,
|
|
||||||
Kuopio=-45.6/3.4/53.2,
|
|
||||||
Kuwait City=-22.9/25.7/79.3,
|
|
||||||
Kyiv=-41.5/8.4/58.4,
|
|
||||||
Kyoto=-32.2/15.8/71.8,
|
|
||||||
La Ceiba=-22.2/26.2/76.9,
|
|
||||||
La Paz=-24.7/23.7/74.3,
|
|
||||||
Lagos=-23.1/26.8/75.7,
|
|
||||||
Lahore=-23.5/24.3/73.7,
|
|
||||||
Lake Havasu City=-28.0/23.7/74.9,
|
|
||||||
Lake Tekapo=-39.8/8.7/61.2,
|
|
||||||
Las Palmas de Gran Canaria=-32.1/21.2/69.0,
|
|
||||||
Las Vegas=-31.0/20.3/68.9,
|
|
||||||
Launceston=-36.0/13.1/64.0,
|
|
||||||
Lhasa=-45.7/7.6/56.1,
|
|
||||||
Libreville=-22.9/25.9/74.4,
|
|
||||||
Lisbon=-30.5/17.5/65.3,
|
|
||||||
Livingstone=-26.3/21.8/77.8,
|
|
||||||
Ljubljana=-38.7/10.9/64.0,
|
|
||||||
Lodwar=-20.1/29.3/79.0,
|
|
||||||
Lomé=-21.3/26.9/79.1,
|
|
||||||
London=-34.3/11.3/60.7,
|
|
||||||
Los Angeles=-30.5/18.6/66.9,
|
|
||||||
Louisville=-37.8/13.9/68.8,
|
|
||||||
Luanda=-28.8/25.8/72.3,
|
|
||||||
Lubumbashi=-30.2/20.8/69.3,
|
|
||||||
Lusaka=-36.2/19.9/68.9,
|
|
||||||
Luxembourg City=-45.6/9.3/61.3,
|
|
||||||
Lviv=-41.3/7.8/58.1,
|
|
||||||
Lyon=-37.6/12.5/61.4,
|
|
||||||
Madrid=-34.2/15.0/64.3,
|
|
||||||
Mahajanga=-24.3/26.3/74.7,
|
|
||||||
Makassar=-20.9/26.7/77.9,
|
|
||||||
Makurdi=-24.5/26.0/78.9,
|
|
||||||
Malabo=-22.1/26.3/76.0,
|
|
||||||
Malé=-23.8/28.0/80.8,
|
|
||||||
Managua=-20.9/27.3/78.3,
|
|
||||||
Manama=-22.9/26.5/75.2,
|
|
||||||
Mandalay=-23.3/28.0/77.6,
|
|
||||||
Mango=-22.9/28.1/84.7,
|
|
||||||
Manila=-21.2/28.4/77.6,
|
|
||||||
Maputo=-25.2/22.8/71.2,
|
|
||||||
Marrakesh=-33.8/19.6/67.4,
|
|
||||||
Marseille=-32.5/15.8/63.9,
|
|
||||||
Maun=-29.7/22.4/72.0,
|
|
||||||
Medan=-24.2/26.5/74.1,
|
|
||||||
Mek'ele=-28.6/22.7/70.7,
|
|
||||||
Melbourne=-36.6/15.1/66.5,
|
|
||||||
Memphis=-33.4/17.2/69.1,
|
|
||||||
Mexicali=-29.3/23.1/73.5,
|
|
||||||
Mexico City=-38.4/17.5/67.2,
|
|
||||||
Miami=-24.8/24.9/72.8,
|
|
||||||
Milan=-42.7/13.0/63.1,
|
|
||||||
Milwaukee=-38.9/8.9/57.3,
|
|
||||||
Minneapolis=-42.4/7.8/55.5,
|
|
||||||
Minsk=-43.7/6.7/59.6,
|
|
||||||
Mogadishu=-23.4/27.1/77.9,
|
|
||||||
Mombasa=-22.5/26.3/78.5,
|
|
||||||
Monaco=-33.7/16.4/66.9,
|
|
||||||
Moncton=-43.2/6.1/55.6,
|
|
||||||
Monterrey=-30.1/22.3/72.1,
|
|
||||||
Montreal=-41.2/6.8/64.3,
|
|
||||||
Moscow=-42.6/5.8/54.5,
|
|
||||||
Mumbai=-22.5/27.1/77.7,
|
|
||||||
Murmansk=-47.6/0.6/49.7,
|
|
||||||
Muscat=-21.6/28.0/77.3,
|
|
||||||
Mzuzu=-32.3/17.7/70.3,
|
|
||||||
N'Djamena=-22.9/28.3/79.8,
|
|
||||||
Naha=-27.4/23.1/72.5,
|
|
||||||
Nairobi=-34.1/17.8/69.5,
|
|
||||||
Nakhon Ratchasima=-27.2/27.3/74.7,
|
|
||||||
Napier=-31.4/14.6/63.9,
|
|
||||||
Napoli=-34.6/15.9/63.7,
|
|
||||||
Nashville=-34.0/15.4/65.8,
|
|
||||||
Nassau=-29.4/24.6/76.8,
|
|
||||||
Ndola=-33.5/20.3/69.0,
|
|
||||||
New Delhi=-28.1/25.0/75.6,
|
|
||||||
New Orleans=-28.1/20.7/66.4,
|
|
||||||
New York City=-37.2/12.9/64.4,
|
|
||||||
Ngaoundéré=-28.5/22.0/73.6,
|
|
||||||
Niamey=-17.6/29.3/81.5,
|
|
||||||
Nicosia=-33.6/19.7/77.2,
|
|
||||||
Niigata=-38.7/13.9/62.3,
|
|
||||||
Nouadhibou=-30.3/21.3/72.0,
|
|
||||||
Nouakchott=-23.5/25.7/76.1,
|
|
||||||
Novosibirsk=-48.1/1.7/54.0,
|
|
||||||
Nuuk=-50.5/-1.4/52.1,
|
|
||||||
Odesa=-37.6/10.7/60.1,
|
|
||||||
Odienné=-27.5/26.0/73.9,
|
|
||||||
Oklahoma City=-35.8/15.9/65.4,
|
|
||||||
Omaha=-39.0/10.6/61.4,
|
|
||||||
Oranjestad=-21.9/28.1/79.5,
|
|
||||||
Oslo=-45.4/5.7/53.1,
|
|
||||||
Ottawa=-42.6/6.6/53.1,
|
|
||||||
Ouagadougou=-22.9/28.3/86.3,
|
|
||||||
Ouahigouya=-20.8/28.6/77.1,
|
|
||||||
Ouarzazate=-26.7/18.9/72.0,
|
|
||||||
Oulu=-46.0/2.7/56.3,
|
|
||||||
Palembang=-22.9/27.3/77.4,
|
|
||||||
Palermo=-29.8/18.5/68.9,
|
|
||||||
Palm Springs=-24.5/24.5/71.8,
|
|
||||||
Palmerston North=-37.7/13.2/63.1,
|
|
||||||
Panama City=-21.2/28.0/78.1,
|
|
||||||
Parakou=-23.7/26.8/80.3,
|
|
||||||
Paris=-36.9/12.3/62.2,
|
|
||||||
Perth=-28.3/18.7/68.6,
|
|
||||||
Petropavlovsk-Kamchatsky=-50.7/1.9/51.3,
|
|
||||||
Philadelphia=-40.8/13.2/64.5,
|
|
||||||
Phnom Penh=-19.7/28.3/80.0,
|
|
||||||
Phoenix=-26.4/23.9/76.0,
|
|
||||||
Pittsburgh=-44.1/10.8/61.5,
|
|
||||||
Podgorica=-31.9/15.3/67.9,
|
|
||||||
Pointe-Noire=-22.5/26.1/74.4,
|
|
||||||
Pontianak=-23.7/27.7/75.1,
|
|
||||||
Port Moresby=-21.3/26.9/84.3,
|
|
||||||
Port Sudan=-25.9/28.4/78.0,
|
|
||||||
Port Vila=-26.2/24.3/71.8,
|
|
||||||
Port-Gentil=-25.8/26.0/77.7,
|
|
||||||
Portland (OR)=-37.4/12.4/62.8,
|
|
||||||
Porto=-36.7/15.7/64.7,
|
|
||||||
Prague=-44.2/8.4/60.2,
|
|
||||||
Praia=-25.4/24.4/78.9,
|
|
||||||
Pretoria=-34.1/18.2/70.8,
|
|
||||||
Pyongyang=-37.4/10.8/61.7,
|
|
||||||
Rabat=-34.3/17.2/67.7,
|
|
||||||
Rangpur=-21.5/24.4/71.6,
|
|
||||||
Reggane=-19.4/28.3/77.7,
|
|
||||||
Reykjavík=-43.6/4.3/53.0,
|
|
||||||
Riga=-53.0/6.2/59.3,
|
|
||||||
Riyadh=-24.8/26.0/75.2,
|
|
||||||
Rome=-35.3/15.2/63.0,
|
|
||||||
Roseau=-31.5/26.2/76.1,
|
|
||||||
Rostov-on-Don=-38.6/9.9/58.0,
|
|
||||||
Sacramento=-38.9/16.3/70.7,
|
|
||||||
Saint Petersburg=-44.7/5.8/58.7,
|
|
||||||
Saint-Pierre=-41.5/5.7/57.3,
|
|
||||||
Salt Lake City=-40.3/11.6/57.9,
|
|
||||||
San Antonio=-27.8/20.8/70.8,
|
|
||||||
San Diego=-31.0/17.8/67.2,
|
|
||||||
San Francisco=-35.0/14.6/62.0,
|
|
||||||
San Jose=-33.5/16.4/65.3,
|
|
||||||
San José=-29.6/22.6/71.0,
|
|
||||||
San Juan=-22.4/27.2/74.9,
|
|
||||||
San Salvador=-26.6/23.1/73.0,
|
|
||||||
Sana'a=-31.7/20.0/67.0,
|
|
||||||
Santo Domingo=-21.3/25.9/80.3,
|
|
||||||
Sapporo=-43.8/8.9/58.3,
|
|
||||||
Sarajevo=-42.2/10.1/61.7,
|
|
||||||
Saskatoon=-46.7/3.3/54.6,
|
|
||||||
Seattle=-36.6/11.3/71.2,
|
|
||||||
Seoul=-38.6/12.5/62.5,
|
|
||||||
Seville=-29.5/19.2/66.2,
|
|
||||||
Shanghai=-32.2/16.7/70.2,
|
|
||||||
Singapore=-22.1/27.0/78.1,
|
|
||||||
Skopje=-42.1/12.4/63.6,
|
|
||||||
Sochi=-39.3/14.2/63.7,
|
|
||||||
Sofia=-36.9/10.6/58.7,
|
|
||||||
Sokoto=-25.4/28.0/79.4,
|
|
||||||
Split=-31.1/16.1/65.8,
|
|
||||||
St. John's=-47.4/5.0/58.8,
|
|
||||||
St. Louis=-34.4/13.9/63.4,
|
|
||||||
Stockholm=-41.4/6.6/56.0,
|
|
||||||
Surabaya=-23.0/27.1/79.9,
|
|
||||||
Suva=-23.5/25.6/72.5,
|
|
||||||
Suwałki=-44.1/7.2/57.6,
|
|
||||||
Sydney=-33.8/17.7/64.2,
|
|
||||||
Ségou=-24.0/28.0/78.5,
|
|
||||||
Tabora=-28.0/23.0/72.1,
|
|
||||||
Tabriz=-37.7/12.6/60.7,
|
|
||||||
Taipei=-24.3/23.0/69.8,
|
|
||||||
Tallinn=-42.1/6.4/55.1,
|
|
||||||
Tamale=-23.4/27.9/77.0,
|
|
||||||
Tamanrasset=-26.5/21.7/70.9,
|
|
||||||
Tampa=-32.4/22.9/73.8,
|
|
||||||
Tashkent=-32.0/14.8/62.0,
|
|
||||||
Tauranga=-36.7/14.8/61.3,
|
|
||||||
Tbilisi=-36.0/12.9/68.3,
|
|
||||||
Tegucigalpa=-29.2/21.7/72.5,
|
|
||||||
Tehran=-35.3/17.0/65.4,
|
|
||||||
Tel Aviv=-28.0/20.0/73.0,
|
|
||||||
Thessaloniki=-35.4/16.0/65.8,
|
|
||||||
Thiès=-26.8/24.0/78.5,
|
|
||||||
Tijuana=-34.4/17.8/67.3,
|
|
||||||
Timbuktu=-26.1/28.0/75.4,
|
|
||||||
Tirana=-35.8/15.2/64.3,
|
|
||||||
Toamasina=-24.7/23.4/72.3,
|
|
||||||
Tokyo=-36.8/15.4/70.1,
|
|
||||||
Toliara=-26.4/24.1/72.9,
|
|
||||||
Toluca=-38.7/12.4/62.7,
|
|
||||||
Toronto=-42.2/9.4/58.3,
|
|
||||||
Tripoli=-29.0/20.0/68.3,
|
|
||||||
Tromsø=-46.9/2.9/54.1,
|
|
||||||
Tucson=-30.3/20.9/72.3,
|
|
||||||
Tunis=-40.3/18.4/67.3,
|
|
||||||
Ulaanbaatar=-49.1/-0.4/52.2,
|
|
||||||
Upington=-32.2/20.4/75.6,
|
|
||||||
Vaduz=-38.0/10.1/61.0,
|
|
||||||
Valencia=-31.7/18.3/67.6,
|
|
||||||
Valletta=-29.2/18.8/65.8,
|
|
||||||
Vancouver=-37.4/10.4/57.1,
|
|
||||||
Veracruz=-22.0/25.4/78.9,
|
|
||||||
Vienna=-38.4/10.4/60.1,
|
|
||||||
Vientiane=-23.2/25.9/75.1,
|
|
||||||
Villahermosa=-21.1/27.1/76.0,
|
|
||||||
Vilnius=-43.2/6.0/55.7,
|
|
||||||
Virginia Beach=-34.2/15.8/65.8,
|
|
||||||
Vladivostok=-46.7/4.9/53.2,
|
|
||||||
Warsaw=-46.2/8.5/57.8,
|
|
||||||
Washington, D.C.=-36.0/14.6/64.0,
|
|
||||||
Wau=-22.1/27.8/77.6,
|
|
||||||
Wellington=-36.4/12.9/63.6,
|
|
||||||
Whitehorse=-53.0/-0.1/49.9,
|
|
||||||
Wichita=-40.5/13.9/66.3,
|
|
||||||
Willemstad=-20.8/28.0/74.1,
|
|
||||||
Winnipeg=-47.7/3.0/54.7,
|
|
||||||
Wrocław=-42.9/9.6/57.8,
|
|
||||||
Xi'an=-38.3/14.1/65.8,
|
|
||||||
Yakutsk=-56.4/-8.8/39.9,
|
|
||||||
Yangon=-21.7/27.5/75.3,
|
|
||||||
Yaoundé=-27.9/23.8/71.4,
|
|
||||||
Yellowknife=-56.5/-4.3/52.0,
|
|
||||||
Yerevan=-39.7/12.4/60.2,
|
|
||||||
Yinchuan=-47.2/9.0/62.5,
|
|
||||||
Zagreb=-38.7/10.7/62.7,
|
|
||||||
Zanzibar City=-22.7/26.0/81.5,
|
|
||||||
Zürich=-43.7/9.3/62.4,
|
|
||||||
Ürümqi=-41.1/7.4/59.7,
|
|
||||||
İzmir=-33.2/17.9/66.4
|
|
||||||
Loading…
Reference in New Issue
Block a user