Highload ++ 2017カンファレンスが開催され、いつものようにクールでした。 レポートを確認し、同僚の経験を最大限に活用し、レポートエリア外で行われたさまざまな活動を喜んで思い出します。
たとえば、当社のブースでは、プログラミング言語(Python、Go、PHP)のいずれかの知識のテストまたはDevOpsのテストに合格して、カラフルなテーマ別Tシャツを手に入れることができます。 今日は、もう一度会議の雰囲気に浸り、テストからの最も高い負荷の問題に対する回答を解析することをお勧めします。 または、ネタバレを見ずにそれらを解決できますか?
お楽しみください!
トピック別の上位3つの質問
Python
1.プログラムの実行中に目的のメソッドが検索される基本クラスの順序を取得する方法は?
cls.get_bases()
cls.__mro__
cls.__bro__
cls.__mro__
2. my_module.__all__
シーケンスで指定されていない場合、my_moduleモジュールからobjオブジェクトをインポートする方法
from my_module import *
import my_module; obj = my_module.obj
from my_module import obj
from my_module import obj
3. Python 2は、z [x == y]を返しますか?
x = x[0] = [0] y = y[0] = [1] z = {(2-1, ): 'equal', (1-1, ): 'not equal'}
equal
not equal
RuntimeError
KeyError
RuntimeError
ゴラン
1. GOMAXPROCS = 5で実行されているプログラムの正しいステートメントを選択します。
- プログラムは5つ以上のOSスレッドを作成できません。
- ストリームごとのゴルチンの量は5を超えてはなりません。
- プログラムは、5つ以上のOSスレッドで同時に実行できません。
- プログラムは、排他的実行のために5つのOSスレッドを予約します。
プログラムは、5つ以上のOSスレッドで同時に実行できません。
2. Goでメモリの場所に直接アクセスする方法は?
- Goのポインターは、使用時に常に逆参照されます。直接メモリアクセスはできません。
- 安全でないパッケージを利用してください。
- 組み込みのreadMemory()関数を使用します。
- アクセスは、特別なシステムgorutinでのみ可能です。
安全でないパッケージを利用してください。
3.プログラムのボトルネックを見つけるのにどのチームが役立ちますか?
go tool pprof
go vet
go tool objdump
go profile
go tool pprof
Php
1.ガベージコレクションにPHPで使用されるアルゴリズムは何ですか?
- ベイカーアルゴリズム。
- 素朴なマークアンドスイープ。
- バランスの取れた二分木。
- 参照カウント、3色マーキング。
参照カウント、3色マーキング。
2. 7番目のバージョンでPHPから消えたものは何ですか?
- 配列への内部ポインター。
- グローバル内の変数での変数のサポート。
- ParseErrorクラスの例外。
- リスト()関数。
グローバル内の変数での変数のサポート。
3.コード内の最初のエコー呼び出しの後にHTTPヘッダーを記述する必要がある場合、誰が保存しますか?
- 出力バッファリング。
- ACL
- SPL
- オペコードキャッシュ。
出力バッファリング。
Devops
1.権限ディレクトリrwxrwS-t、aliceの所有者、ユーザーグループ。 ACLは使用されません。 正しいステートメントを選択してください。
- rootユーザーがこのディレクトリにファイルを作成する場合、このファイルにはrootとして所有者とグループが含まれます。
- usersグループのメンバーではないユーザーbobは、このディレクトリ内のファイルの内容を表示できませんが、ディレクトリ自体の内容は表示できます。
- aliceユーザーは、このディレクトリからルートユーザーに属するファイルを削除できます。
- ユーザーグループのメンバーであるユーザーチャーリーは、このディレクトリに新しいファイルを作成できますが、ユーザーアリスによって作成されたファイルを削除することはできません。
aliceユーザーは、このディレクトリからルートユーザーに属するファイルを削除できます。
2.イーサネットプロトコルで物理アドレスが使用されるのはなぜですか?
- 他のネットワーク上のデバイスとデータを交換するため。
- フレーム(2ネットワーク層)とパケット(3ネットワーク層)を区別するため。
- 衝突ドメインでのデータ転送の順序を決定します。
- 同じネットワーク上のデバイスがデータを交換するため。
同じネットワーク上のデバイスがデータを交換するため。
3. nginxがDNSを使用してIPのバックエンドサーバーの名前を再解決するには、何をする必要がありますか?
- resolverディレクティブでDNSサーバーを指定し、バックエンドサーバーの名前を変数に入れます。
- リゾルバーディレクティブでDNSサーバーを指定し、バックエンドサーバーの名前をアップストリームに配置します。
- アップストリームでバックエンドサーバーの名前を作成し、アップストリームにresolve_dynamicディレクティブを追加します。
- resolverディレクティブでDNSサーバーを指定すると、nginxはバックエンドサーバーの名前を自動的に再解決します。
resolverディレクティブでDNSサーバーを指定し、バックエンドサーバーの名前を変数に入れます。
トップレベルユーザー
結果は次のとおりです。 テストは273人をパスし始めました。 終了しなかった人もいます(終了が許可されていないと言うことはできません-興味深い報告、自己疑念、または弱いコミュニケーション)。 4つの方向すべてで獲得できるポイントの最大数は60です。
さて、ここにトップ5の本当のヒーローがいます。 みんな、あなたは知っている-あなたはすべての中で最もクールです。
- Svyatoslav Dumchenko-39ポイント
- ヴャチェスラフ・ズロデエフ-37ポイント
- ウラジミール・プロタソフ-24ポイント
- スヴェトラーナシャガリーナ-24ポイント
- イリヤ・レベデフ-22ポイント
すべての方向でトップ50を獲得したTシャツは次のとおりです。
ネタバレを見ずに問題を解決できましたか? コメントを書いてください。
そして、もちろん、次回まで!