検索
ホームページ運用・保守Linuxの運用と保守プロジェクトで一般的に使用される Linux コマンドによって引き起こされる古典的なアルゴリズムの問​​題

  小时候家里定了《读者》的月刊,里面记录一个故事:说有有个偏僻的乡村一日突然来了一个美女,她携着万贯家财子女在当地安家落户,成了当地的乡绅。她让她的子女世世代代的保守这个秘密,直到这个秘密不会再对家族带来灾难。她就是陈圆圆。当年吴三桂领清兵入关,冲冠一怒为红颜,改写了中国的历史,自己却能全身而退的那个人。

  周五例行公事的查看一下离线数据推送项目的数据和log。将log用awk分段之后,我想知道实时数据前10个被重复发送的数据ID都被重复发送了几次,从而找到进一步优化的入手点,天知道我对这个项目已经进行了多少次优化了。于是linux命令就是

 cat transmission.log |grep 'IncrementAlbumService.java:146'|awk '{print $6}'|awk -F ',' '{print $1}'| sort |uniq -c| sort -nr |head

得られた結果を見て非常に罪悪感を感じました

(データセキュリティ、プロジェクトのIDルール部分が表示されません)

これは彼らの運用に関わることですが、データの変更を検知して送信すべきだったのですが、しかし、これほど高い再発行率ではありません。更新サービスとオフライン サービスのインターフェイスに関係なく、最適化できる点はまだあります。女の子、私の考え方は、登場するときにヘアドライヤーや人工じょうろを使用して絵を作成する男性アイドルの考え方とは常に異なっていました。この結果に加えて、私は別の古典的なアルゴリズムの問​​題についても考えています。つまり、各行に 1 つの単語が含まれる約 10,000 行のテキスト ファイルがあり、最も頻繁に出現する上位 10 の単語をカウントする必要があります。

このアルゴリズムの問​​題では、上記の Linux コマンドは sort|uniq -c |sort -nr | です。時間計算量は次の中で最大です:

1> まずソートを行います、

直接挿入ソート: 順序付きリストに要素を連続的に挿入します、最悪の時間計算量は O(n2 )

シェルソート:増分が減少した挿入ソート、不安定、増分因子シーケンスの選択に依存、最悪の時間計算量は O(n2)

単純選択ソート: ソートされる数値のうち、最小または最大を選択して交換します最初のソートされていない位置では、最悪の場合の時間計算量は O(n2) です

二項選択ソート: 単純な選択ソートごとに 2 つの要素が決定されるため、サイクルが半分に短縮されます。

ヒープソート: ツリー選択ソート、大きなルートヒープ、小さなルートヒープ。最悪の時間計算量は O(N*logN) です

バブルソート: 2 つの隣接する数値が比較され交換されるたびに、最悪の時間計算量は O(n2) になります

クイックソート: 選択ベンチマーク要素、毎回ソートされる要素は分割され、最悪の時間計算量は O(n2)

マージソート: 2 つの順序付きリストを新しい順序付きリストに結合します、最悪の時間計算量は O(N*logN) です

バケットソート:空間と時間を交換するアルゴリズム、計算量は O(n) に近い

基数ソート: 数十万桁に従って割り当てと収集、時間計算量は O(dn)

2>uniq の時間計算量は O (n)

3>sortの時間サービス度は1>

4>sort後の時間計算量はO(1)

使用されるアルゴリズムはファイルのサイズにも関係しますサイズが大きすぎてデータが多すぎる場合は、ファイルを分割し、個別に並べ替えてから、複数の方法で結合する必要があります。したがって、ここでは単語数について言及します。

Linux コマンドを使用しない場合の古典的な解決策は、まず辞書ツリーを使用して単語の頻度をカウントし、次に大きなルート ヒープを使用することです。まず、タイヤ ツリーとも呼ばれる辞書ツリーを紹介します。検索エンジンはこれをテキストの単語の頻度統計を作成するためによく使用し、単語分割アルゴリズムもこれを基本的なデータ構造として使用するため、私はそれについて少し知っています。その利点は、不必要な文字列比較を最小限に抑え、クエリ効率がハッシュ テーブルよりも高いことです。中心となるアイデアは、スペースを時間に交換し、パブリック プレフィックスを使用してクエリ時間のオーバーヘッドを削減することです。したがって、統計について話すとき、最初に思い浮かぶのは辞書ツリーです。単語頻度をカウントするときに上位 10 個の最大単語頻度の配列を維持すると、ループ処理で比較した場合、時間計算量は 10 倍高くなります。したがって、最初に統計を作成してから上位 10 を選択する方が、時間効率の点で適切です。

実は私はアルゴリズムについてはあまり詳しくなく、ただ使い方を知っているだけです。私の元同僚は、私が WeChat に書いた記事を読んで、「フィード ストリーミングは非常に技術的な仕事ですか?」と尋ねました。彼の質問を聞いて、背が高く、金持ちで、ハンサムであるふりをすることに固執した「仙剣」のリー・シャオヤオを思い出しました。レストランで彼が一番高価な料理「牛肉と野菜の炒め物」を注文したいと言うと、リンアーは笑いながら「シャオヤオ兄さん、牛肉と野菜の炒め物はとても高価な料理ですか?」と尋ねた。同僚はJD.comにいてMomoに行くか検討しているので真剣に私の意見を求めていましたが、私は世界を見たことがないLi Xiaoyaoのような気分でした。フィード フローのビジネス ロジックは、どのような方法でも実行できます。技術的な内容が含まれるかどうかは、その実行方法によって決まります。フィードストリームを組み立てる方法を紹介する特許を書いていますが、そのプロセスはまだ完了していないため、それまでは計算方法を公開しません。しかし、よく考えてみると、最適化のポイントはまだたくさんあります。一昨年、モーメントを好んでプレイしていたとき、削除したモーメントが再び表示されたり、自分や他の人のモーメントの最近のデータが突然消えて、1 年前の 2 か月前などの非常に古いデータだけが残ったりすることがよくありました。 1 年前のデータは 1 日後に自動的に復元されます。それはすべて戦略の問題です。 WeChat モーメントには多くの問題があります。私たちの製品の 1 つである mm は WeChat アーキテクトのファミリー メンバーなので、あまり文句は言いません。

今日は日曜日ですが、少し想像力を働かせても構いませんが、テーマが必要です。前の例には古典的な上位 K 問題があります。検索エンジンは多くの場合、最も人気のあるクエリ文字列をカウントする必要があるため、上位 K 個の質問が基準となります。 TopK 問題は小さなルート ヒープを使用します。 K サイズの小さなルート ヒープを維持し、比較する要素をたどって、それらをそれぞれ次の要素と比較します。ルート要素より小さい場合は、上位 K には絶対に入らないことを意味します。ルート要素より大きい場合は、ルート要素を削除します。次に、ツリーを最小ヒープに調整し、比較を続けます。

最小ヒープは完全な二分木であり、各非葉ノードの値はその子ノードの値を超えません。このルールに違反している場合は、最初の非リーフ ノードからルート ノードまでボトムアップの順序で調整を行う必要があります。

来週Huluでインタビューすることに決めましたが、まだ行っていないので、おそらく行かないでしょう。 2 年前、元同僚が Amazon を勧めてくれましたが、自分を慰めるために、当時は採用活動をしていなかったのだろうと思います。私はこれまでこのような外資系企業の面接に行ったことがないので、どのようなルーティンになっているのかわかりません。今から準備を始めれば、おそらく国慶節後には合格できるでしょう。一人で面接に行くのは非常に不利だと思います。それはまったく悪いことではありませんが、非常に不安定になります。私の記事を読んだ友人は、私の記事が非常に乱雑で複雑だと思うかもしれません。これはまさに私の人生に当てはまります。私は幅広い知識を持っており、とても気まぐれで、何の迷いもありませんが、一方ではそれが私の創造性の基礎となりますが、他方では、自分自身を表現する能力には役立たないのです。スポット。脳はコンピューターのようなものです。並列プログラムがたくさんありますが、メモリが十分に大きくなく、データが大量にあります。メモリ ページングにより、ディスクの定期的なスワップが発生します。インタビューなどの時間に敏感なアクションは、簡単にタイムアウトによる返品につながる可能性があります。私は技術発明の特許をたくさん持っていますが、今思うと、自分が何を発明したのかすら思い出せません。ちょうどバスに乗ったところ、人が少なかったので、運転手はどこで降りればいいのかと尋ねました。思い出すのに長い時間がかかりました。実際、私の脳は非同期ノンブロッキング モードでより多く動作します。実際、インタビューなどには同期ブロッキングの方が適しています。しかし、すべてに解決策はあります。解決策が見つからない場合は、あなたの能力が足りないだけです。ただし、面接ではチームワークや会話力など総合的な能力が問われます。 「小京はとても賢いです」という一文に、うちの部署では異論のある人はいないと思います。また、部署や職場で一緒に仕事をする同僚たちも、私をコミュニケーションがとりにくい、付き合いにくい人だとは思わないだろうと信じています。しかし、面接では話し方を忘れてしまいがちです。しかし、この問題が原因で面接に落ちたとしても、私は文句を言いません。面接官は将来の同僚でありリーダーであるため、面接官との相性が合わないと将来自分の能力を発揮できない可能性があります。面接の結果が悪くても、自分の能力は十分だと感じている場合は、自分のレベルが十分ではなく、本当に優れた人材がどのようなものかを見たことがない可能性があります。しかし、私は壁にぶつかると覚悟してでもやり続ける人間です。私が何かを諦めると決めたら、それはやる価値がないからです。

私は働くことが好きで、60歳になってもクリエイティブな仕事を続けることが目標です。そのため、国内のインターネット企業が私を40歳で退職させてくれるのではないかと心配しています。もう一つ重要なことがあるのですが、検索エンジンのミドルウェアを自分で作りたいと思っています。国内のインターネット企業はユーザーを中心に考えているので、それをやるエネルギーは難しいと思います。もちろん、Hulu にアクセスできない場合でも、検索エンジンがそれを行う必要があります。あとは時間をどう配分するかの問題です。

私は実際、壁にぶつかるのが好きです。おそらく、そんなに早く成長したくないからです。毎日大人っぽく上品に振る舞うなら、苦手なことやうまくいかないことも隠しておく必要があります。その結果、私は毎日幸せになりますが、もしかしたら一生このままかもしれません。歴史上には、元々はプレイボーイだったが、家が没落した後に偉人になった有名人が数多くいます。この本では、人生の転機は高貴な人々との出会いと挫折の二種類があると書かれています。若くて心が広いときは、高貴な人に出会ってひらめきがあり、心を開くことができます。経験が増えるにつれて、人々は周囲の情報をより選択的に受け取るようになりますが、この時点では、人生を再考する前に大きな挫折に遭遇する必要があるかもしれません。より良い未来が見えるなら、私は一人で進んで船を燃やすつもりです。生きたいなら、一度に浮き沈みがある方が良いです~~

以上がプロジェクトで一般的に使用される Linux コマンドによって引き起こされる古典的なアルゴリズムの問​​題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Linuxのメンテナンスモードの理解:必需品Linuxのメンテナンスモードの理解:必需品Apr 14, 2025 am 12:04 AM

Linuxメンテナンスモードは、起動時にinit =/bin/bashまたは単一パラメーターを追加することにより入力されます。 1.メンテナンスモードの入力:GRUBメニューを編集し、起動パラメーターを追加します。 2。ファイルシステムを読み取りおよび書き込みモードに再マウントします:Mount-Oremount、RW/。 3。ファイルシステムの修復:FSCK/dev/sda1などのFSCKコマンドを使用します。 4.データをバックアップし、データの損失を避けるために慎重に動作します。

DebianがHadoopデータ処理速度を改善する方法DebianがHadoopデータ処理速度を改善する方法Apr 13, 2025 am 11:54 AM

この記事では、DebianシステムのHadoopデータ処理効率を改善する方法について説明します。最適化戦略では、ハードウェアのアップグレード、オペレーティングシステムパラメーターの調整、Hadoop構成の変更、および効率的なアルゴリズムとツールの使用をカバーしています。 1.ハードウェアリソースの強化により、すべてのノードが一貫したハードウェア構成、特にCPU、メモリ、ネットワーク機器のパフォーマンスに注意を払うことが保証されます。高性能ハードウェアコンポーネントを選択することは、全体的な処理速度を改善するために不可欠です。 2。オペレーティングシステムチューニングファイル記述子とネットワーク接続:/etc/security/limits.confファイルを変更して、システムによって同時に開くことができるファイル記述子とネットワーク接続の上限を増やします。 JVMパラメーター調整:Hadoop-env.shファイルで調整します

Debian syslogを学ぶ方法Debian syslogを学ぶ方法Apr 13, 2025 am 11:51 AM

このガイドでは、Debian SystemsでSyslogの使用方法を学ぶように導きます。 Syslogは、ロギングシステムとアプリケーションログメッセージのLinuxシステムの重要なサービスです。管理者がシステムアクティビティを監視および分析して、問題を迅速に特定および解決するのに役立ちます。 1. syslogの基本的な知識Syslogのコア関数には以下が含まれます。複数のログ出力形式とターゲットの場所(ファイルやネットワークなど)をサポートします。リアルタイムのログ表示およびフィルタリング機能を提供します。 2。syslog(rsyslogを使用)をインストールして構成するDebianシステムは、デフォルトでrsyslogを使用します。次のコマンドでインストールできます:sudoaptupdatesud

DebianでHadoopバージョンを選択する方法DebianでHadoopバージョンを選択する方法Apr 13, 2025 am 11:48 AM

Debianシステムに適したHadoopバージョンを選択する場合、次の重要な要因を考慮する必要があります。1。安定性と長期的なサポート:安定性とセキュリティを追求するユーザーにとって、Debian11(Bullseye)などのDebianの安定したバージョンを選択することをお勧めします。このバージョンは完全にテストされており、最大5年のサポートサイクルがあり、システムの安定した動作を確保できます。 2。パッケージの更新速度:最新のHadoop機能と機能を使用する必要がある場合は、DebianのUnstableバージョン(SID)を検討できます。ただし、不安定なバージョンには互換性の問題と安定性のリスクがあることに注意する必要があります。 3。コミュニティのサポートとリソース:Debianには、豊富なドキュメントを提供できるコミュニティサポートが大きくなり、

debianのtigervnc共有ファイルメソッドdebianのtigervnc共有ファイルメソッドApr 13, 2025 am 11:45 AM

この記事では、Tigervncを使用してDebian Systemsでファイルを共有する方法について説明します。最初にtigervncサーバーをインストールしてから構成する必要があります。 1. TigerVNCサーバーをインストールし、端末を開きます。ソフトウェアパッケージリストの更新リスト:sudoaptupdate tigervnc server:sudoaptinstaltaltigervnc-standalone-servertigervnc-common2。tigervncサーバーを構成するVNCサーバーパスワードを設定します。

Debian Mail Serverファイアウォールの構成のヒントDebian Mail Serverファイアウォールの構成のヒントApr 13, 2025 am 11:42 AM

Debian Mail Serverのファイアウォールの構成は、サーバーのセキュリティを確保するための重要なステップです。以下は、iPtablesやFirewalldの使用を含む、一般的に使用されるファイアウォール構成方法です。 iPtablesを使用してファイアウォールを構成してIPTablesをインストールします(まだインストールされていない場合):sudoapt-getupdatesudoapt-getinstalliptablesview現在のiptablesルール:sudoiptables-l configuration

Debian Mail Server SSL証明書のインストール方法Debian Mail Server SSL証明書のインストール方法Apr 13, 2025 am 11:39 AM

Debian Mail ServerにSSL証明書をインストールする手順は次のとおりです。1。最初にOpenSSL Toolkitをインストールすると、OpenSSLツールキットがシステムに既にインストールされていることを確認してください。インストールされていない場合は、次のコマンドを使用してインストールできます。sudoapt-getUpdatesudoapt-getInstalopenssl2。秘密キーと証明書のリクエストを生成次に、OpenSSLを使用して2048ビットRSA秘密キーと証明書リクエスト(CSR)を生成します:Openss

Debian Mail Server仮想ホスト構成方法Debian Mail Server仮想ホスト構成方法Apr 13, 2025 am 11:36 AM

Debianシステムでのメールサーバーの仮想ホストの構成には、通常、Apache Httpserverではなく、Apache Httpserverではなく、Mail Serverソフトウェア(Postfix、Eximなど)のインストールと構成が含まれます。以下は、メールサーバーの構成のための基本的な手順です仮想ホスト:ポストフィックスメールサーバー更新システムパッケージ:sudoaptupdatesudoaptupgradeポストフィックス:sudoapt

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター