プログラミング

プロおよび熱狂的プログラマーのためのQ&A


1
Android / ARMターゲットのDelphi XExコード生成に影響を与える方法は?
2017-05-17を更新。私はこの質問の元となった会社で働いていないため、Delphi XExにアクセスできません。私がそこにいる間、問題はFPC + GCC(Pascal + C)の混合に移行することで解決されました。NEON組み込み関数は、それが違いを生むいくつかのルーチンに使用します。(FPC + GCCは、標準ツール、特にValgrindの使用を可能にするため、強く推奨されます。)信頼できる例を使用して、Delphi XExから最適化されたARMコードを実際に生成できる方法を誰かが示すことができる場合、私は答えを受け入れます。 EmbarcaderoのDelphiコンパイラはLLVMバックエンドを使用して、Androidデバイス用のネイティブARMコードを生成します。Androidアプリケーションにコンパイルする必要があるPascalコードが大量にあり、Delphiでより効率的なコードを生成する方法を知りたいです。現在、私は自動SIMD最適化のような高度な機能についてさえ話していません。合理的なコードを生成することについてだけです。確かに、パラメーターをLLVM側に渡す方法、または何らかの方法で結果に影響を与える方法が必要ですか?通常、どのコンパイラにもコードのコンパイルと最適化に影響を与える多くのオプションがありますが、DelphiのARMターゲットは単に「最適化のオン/オフ」であり、それだけです。 LLVMは適度にタイトで実用的なコードを生成できるはずですが、Delphiはその機能を奇妙な方法で使用しているようです。Delphiはスタックを非常に多用したいと考えており、通常、プロセッサのレジスタr0〜r3を一時変数としてのみ使用します。おそらく最もクレイジーなのは、通常の32ビット整数を4つの1バイトのロード操作としてロードすることです。Delphiがより優れたARMコードを生成するようにするにはどうすればよいですか? 最初は、バイトごとの読み込みはビッグエンディアンからバイト順を交換するためのものだと思っていましたが、そうではありません。実際には、32ビットの数値を4つのシングルバイトの読み込みで読み込むだけです。*アライメントされていないワードサイズのメモリロードを行わずに、32ビット全体。(それを避けるべきかどうかは別のことであり、コンパイラのバグであることを示唆しています)* この簡単な関数を見てみましょう: function ReadInteger(APInteger : PInteger) : Integer; begin Result := APInteger^; end; 最適化がオンになっていても、アップデートパック1を適用したDelphi XE7とXE6は、その関数に対して次のARMアセンブリコードを生成します。 Disassembly of section .text._ZN16Uarmcodetestform11ReadIntegerEPi: 00000000 <_ZN16Uarmcodetestform11ReadIntegerEPi>: 0: b580 push {r7, lr} 2: 466f mov r7, sp 4: b083 sub sp, #12 6: 9002 str …



5
ES6では、変数がletまたはconstで宣言されていませんか?
OverаэтотвопросестьответынаStack Overflowнарусском:Всплываютлиперемененее、объявленныеспомоststвletиcon ES6をしばらく使用していて、で宣言された変数がvar期待どおりに巻き上げられていることに気付きました... console.log(typeof name); // undefined var name = "John"; ...で宣言された変数、letまたはconst巻き上げに問題があると思われる変数: console.log(typeof name); // ReferenceError let name = "John"; そして console.log(typeof name); // ReferenceError const name = "John"; これは、宣言された変数letまたはconstホイストされていない変数を意味しますか?ここで本当に何が起こっているのですか?間に何らかの差があるletと、constこの問題では?

10
FORループとIFステートメントを組み合わせるPythonの方法
forループとifステートメントの両方を別々の行に使用する方法を知っています。 >>> a = [2,3,4,5,6,7,8,9,0] ... xyz = [0,12,4,6,242,7,9] ... for x in xyz: ... if x in a: ... print(x) 0,4,6,7,9 また、ステートメントが次のように単純な場合は、リスト内包表記を使用してこれらを組み合わせることができることを知っています。 print([x for x in xyz if x in a]) しかし、私が見つけられないのは、forループといくつかのifステートメントの組み合わせの後に発生する(「print x」だけでなく)複雑なコマンドのセットを示す(コピーして学ぶための)良い例です。私が期待するものは次のようになります: for x in xyz if x not in a: print(x...) これはpythonが動作するはずの方法ではないのですか?



17
ヘッダー付きのC#でのCSVファイルの解析
C#でCSVファイルを解析するデフォルト/公式/推奨される方法はありますか?自分のパーサーをロールバックしたくありません。 また、ODBC / OLE DBを使用してテキストドライバー経由でCSVを読み取る例もありましたが、多くの人々は、その「欠点」のためにこれを思いとどまらせました。これらの欠点は何ですか? 理想的には、最初のレコードをヘッダー/フィールド名として使用して、列名でCSVを読み取る方法を探しています。与えられた答えの一部は正しいですが、基本的にはファイルをクラスに逆シリアル化するように機能します。
266 c#  csv  file-io  io  header 

25
固定/固定された左の列とスクロール可能な本文を含むHTMLテーブルを作成するにはどうすればよいですか?
簡単な解決策が必要です。私はそれが他のいくつかの質問に似ていることを知っています: 固定ヘッダーと固定列を持つHTMLテーブル? JavaScriptとCSSを使用して、スクロール時にテーブルの最初の行と最初の列をどのようにロックできますか? しかし、左の列を1つだけ固定する必要があるので、シンプルでスクリプトを使用しないソリューションを使用します。
266 html  css  html-table 

4
Mavenのpom.xmlのpluginManagementとは何ですか?
これは私のpomファイルのスニペットです。 .... <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.4</version> <executions> <execution> <phase>install</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> ...... </configuration> </execution> </executions> </plugin> </plugins> ... 私はコマンドでそれをうまく使います mvn install しかし、それを「pluginManagement」タグで囲もうとするとmaven-dependency-plugin、installゴールを起動すると機能が停止します。「pluginManagement」タグがビルド動作を変更するのはなぜですか?または、別の目標やオプションを使用する必要がありますか?

11
AngularでHTTPリクエストにURL引数(クエリ文字列)を渡す方法は?
AngularでHTTPリクエストを作成していますが、URL引数(クエリ文字列)を追加する方法がわかりません。 this.http.get(StaticSettings.BASE_URL).subscribe( (response) => this.onGetForecastResult(response.json()), (error) => this.onGetForecastError(error.json()), () => this.onGetForecastComplete() ); 今、私のStaticSettings.BASE_URLのような無クエリ文字列を含むURLのようなものです:http://atsomeplace.com/が、私はそれになりたいhttp://atsomeplace.com/?var1=val1&var2=val2 var1とvar2は、私のHttpリクエストオブジェクトのどこに収まりますか?オブジェクトのように追加したい。 { query: { var1: val1, var2: val2 } } 次に、Httpモジュールだけがそれを解析してURLクエリ文字列に変換します。
266 http  angular  typescript 

10
コマンドラインを使用してLinuxでxlsxをcsvに変換する
Linuxでxlsxファイルをcsvファイルに変換する方法を探しています。 私は数百万行を処理することを検討しているので、PHP / Perlやそのようなものを使用したくないので、簡単なものが必要です。xls2csvと呼ばれるプログラムをUbuntuリポジトリで見つけましたが、それはxls(Office 2003)ファイル(現在使用中)のみを変換しますが、新しいExcelファイルのサポートが必要です。 何か案は?
266 linux  excel  csv  converter  xlsx 



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.