我有一个包含几个结构的类库,每个结构由几个值和引用类型组成.大多数值类型是必需的,一些值类型和所有引用类型都是可选的.所有结构都是XmlSerializable(必须的).
至于类库是针对移动设备的,我想减少内存占用.我的第一个想法是使用Nullable<T>值类型,但这会使内存大小增加4个字节Nullable<T>.我的第二个想法是将所有可选值类型打包到一个单独的结构中,该结构仅在需要任何成员时进行实例化.但这会迫使我IXmlSerializable在"主要"结构上实施.
有没有其他方法来"缩小"结构?
[编辑]
请原谅这个糟糕的问题.我想我必须澄清一些事情并且更具体:
类库旨在序列化数据信息GPX(GPS交换格式).结构例如是Waypoint或Track.它们具有纬度,经度等必填字段.可选字段为垂直/水平/位置精度稀释,描述,链接.
该库主要针对移动设备,如PDA.RAM很短,但可以使用大量非易失性存储器.
只要没有代码示例就无法显示.我想在开始实施之前考虑几个陷阱.
我有以下功能
void DoSomething(int start[10], int end[10])
Run Code Online (Sandbox Code Playgroud)
当我通过它来称呼它
void Do(void)
{
int start[10] = {1,2,3,4,5,6,7,8,9,0};
int end[10] = {1,2,3,4,5,6,7,8,9,0};
DoSomething(start,end);
}
Run Code Online (Sandbox Code Playgroud)
我在堆栈上放了两个指针(8个字节全部在一起)还是两个40个字节的数组?
我是Java新手,并且在模糊性方面遇到错误.请告诉我需要纠正的问题.
public class JessiahP3
{
boolean isPlaying = false;
int strings = 1;
boolean isTuned = false;
public String instrumentName;
//is tuned
public void isTuned()
{
isTuned = true;
System.out.println("Currently tuning " + getInstrumentName());
}
//not tuned
public void isNotTuned()
{
isTuned = false;
System.out.println(getInstrumentName() + " is not tuned");
}
}
Run Code Online (Sandbox Code Playgroud) 你可以帮我解决用随机数填充5个圆圈阵列的问题.随机数将是圆的半径.这是我的代码:
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
// Array 2, below section is to populate the array with random radius
float CircleArrayTwo [5]; // store the numbers
const int NUM = 5; // Display 5 random numbers
srand(time(NULL)); // seed the generator
for(int i = 0; i < NUM; ++i)
{
CircleArrayTwo[i] = rand()%10;
}
cout << "Below is the radius each of the five circles in the second array. " << endl;
cout << CircleArrayTwo …Run Code Online (Sandbox Code Playgroud) 我在 Windows 上有两个版本的 Python,想通过cmd. 我试图制作它们的快捷方式python.exe并将它们重命名为python26和python33(我还将它们的位置添加到PATH),但不幸的是这不起作用。中的调用python26或python26.lnk输出not recognized as an internal command。
有没有其他方法可以做到(如 Linux virtualenv),或者我错过了我的想法?
我有一个xml,我把它读到一个表格单元格,但似乎当有一个新行时,它用白色空格改变它.当我使用C#读取xml时,如何保留新行.
var xmlDoc = XDocument.Load(new XmlTextReader(Server.MapPath("NSrc.xml")),
LoadOptions.PreserveWhitespace);
foreach (var descendant in xmlDoc.Descendants("NewsItem"))
{
var title = descendant.Element ("Title").Value;
TableRow rw = new TableRow();
TableCell cell = new TableCell();
var title = descendant.Element("Title").Value;
var summary = descendant.Element("Summary").Value;
cell.Text = title;
rw.Cells.Add(cell);
tbl.Controls.Add(rw);
rw = new TableRow();
cell = new TableCell();
cell.Text = summary;
rw.Cells.Add(cell);
tbl.Controls.Add(rw);
}
Run Code Online (Sandbox Code Playgroud) 我有点困惑,因为当我使用这段代码时:
catalog.Elements = GetElements(myProvider.Elements);
catalog.Programs = GetPrograms(myProvider.Programs);
catalog.Details = GetDetails(myProvider.Details);
Run Code Online (Sandbox Code Playgroud)
我有4秒钟.
当我尝试使用任务(.NET 4.0)时:
Task<List<Element>> elementsTask = Task.Factory.StartNew<List<Element>>(
delegate {
return GetElements(myProvider.Elements);
});
Task<List<Program>> programsTask = Task.Factory.StartNew<List<Program>>(
delegate {
return GetPrograms(myProvider.Programs);
});
Task<List<Detail>> detailsTask = Task.Factory.StartNew<List<Detail>>(
delegate {
return GetDetails(myProvider.Details);
});
catalog.Elements = elementsTask.Result;
catalog.Programs = programsTask.Result;
catalog.Details = detailsTask.Result;
Run Code Online (Sandbox Code Playgroud)
我得到6秒.
当我不使用任务并行性时,它是否更快是正常的?
谢谢