在MSDN网站上指出:
缓冲区是内存中用于缓存数据的字节块,从而减少了对操作系统的调用次数.缓冲区可提高读写性能.缓冲区可用于读取或写入,但不能同时使用.BufferedStream的Read和Write方法自动维护缓冲区.
我应该在每个可能的场合使用这门课吗?
Console.WriteLine
在输出写入或立即返回之前是否阻塞?
如果它确实阻塞了是否有一种向控制台写入异步输出的方法?
我正在制作游戏并重新绘制游戏区并不是很好用Console.Write()有没有什么方法可以更快地重写整个字段而不会让它看起来"滞后"?Playfield中的所有内容都在移动,但是只有不同于0的元素才有对象..(你可以查看完整的代码http://pastebin.com/TkPd37xD,如果我的描述不是,请查看我在说什么足够)
for (int Y = 0; Y < playfield.GetLength(0); Y++)
{
for (int X = 0; X < playfield.GetLength(1); X++)
{
//destroying the row when it reaches the top
if (playfield[0, X] != 0)
{
for (int i = 0; i < playfield.GetLength(1); i++)
{
playfield[0, X] = 0;
Console.SetCursorPosition(X, 0);
Console.Write(" ");
}
}
if (playfield[Y, X] == 3)
{
playfield[Y - 1, X] = 3;
playfield[Y, X] = 0;
}
else if (playfield[Y, X] == 1) …
Run Code Online (Sandbox Code Playgroud) 我有一个有4个线程的应用程序.每个线程实际上都是一个Timer,并在特定的时间间隔内完成单独的工作.这些线程通过使用显示其日志Console.Writeline
.性能在此应用程序中非常重要.我想知道删除是否Console.Writeline
会调整此应用程序的性能?
当我使用OLEDB时,从Excel工作表中读取3200行只需2-3秒.现在我改为OpenXML格式,现在从Excel表读取3200行需要1分钟以上.
以下是我的代码:
public static DataTable ReadExcelFileDOM(string filename)
{
DataTable table;
using (SpreadsheetDocument myDoc = SpreadsheetDocument.Open(filename, true))
{
WorkbookPart workbookPart = myDoc.WorkbookPart;
Sheet worksheet = workbookPart.Workbook.Descendants<Sheet>().First();
WorksheetPart worksheetPart =
(WorksheetPart)(workbookPart.GetPartById(worksheet.Id));
SheetData sheetData =
worksheetPart.Worksheet.Elements<SheetData>().First();
List<List<string>> totalRows = new List<List<string>>();
int maxCol = 0;
foreach (Row r in sheetData.Elements<Row>())
{
// Add the empty row.
string value = null;
while (totalRows.Count < r.RowIndex - 1)
{
List<string> emptyRowValues = new List<string>();
for (int i = 0; i < maxCol; i++)
{
emptyRowValues.Add(""); …
Run Code Online (Sandbox Code Playgroud) 我正在用C#测试一些案例以考虑性能方面的一些基本要素,而我在测试时遇到了一个奇怪的情况
for (int i = 0; i < 30; i++)
{
DateTime d = DateTime.Now;
print();
result.Add ((DateTime.Now - d));
}
foreach(TimeSpan t in result)
Console.WriteLine(t.ToString());
Run Code Online (Sandbox Code Playgroud)
虽然打印功能很简单:
public static void print ()
{
for (int i = 0; i < 10000; i++)
{
Console.WriteLine( string.Format("{0}", i));
}
}
Run Code Online (Sandbox Code Playgroud)
我对结果感到震惊,而前三个循环花了大约5秒钟,而之后花了大约0.5秒.这是一些:
00:00:05.6212696
00:00:05.6072002
00:00:05.5837965
00:00:01.9451673
00:00:00.5526335
00:00:00.5540554
00:00:00.5676418
00:00:00.5372442
00:00:00.5772550
Run Code Online (Sandbox Code Playgroud)
我只是想知道为什么在第三次迭代后它变好了近10倍?