VB.netで書かれた関数が1つあります。コードは次のようになります。
For rowIndex As Integer = 0 To nRows - 1
Dim max As Integer = -1
Dim arrTemp() As String
arrTemp = Nothing
For columnIndex As Integer = 0 To nCols - 1
If IsNumeric(arrTranspose(rowIndex, columnIndex)) Then
Dim iVal As Integer = arrTranspose(rowIndex, columnIndex)
If iVal < 0 Then
iVal = Math.Abs(iVal)
End If
If max < iVal Then
max = iVal
ReDim Preserve arrTemp(max)
End If
arrTemp(iVal) += String.Format("{0},", (columnIndex + 1))
End If
Next
arrRespondentIDs(rowIndex) = arrTemp
Next
nRow = 210 nCols = 64772
上記のコードでは、最初のループの実行に4〜5分かかります。調査して観察しました。その後、IsNumeric関数のため、さらに時間がかかります。これについてはよくわかりません。
コードのどの部分がパフォーマンスの問題を引き起こしているのか、誰でも考えられますか?あなたのアイデアを共有してください。
ありがとう、Mohmedsadiq。