我正在开发一个紧凑的框架应用程序,需要提高性能.该应用程序当前通过将对象序列化为XML并将其存储在数据库中而脱机工作.使用分析工具,我可以看到这是一个相当大的开销,减慢了应用程序.我想如果我切换到二进制序列化,性能会增加,但因为在紧凑的框架中不支持,我看了protobuf-net.序列化似乎更快,但反序列化要慢得多,并且应用程序比串行化更多地反序列化.
二进制序列化应该更快,如果是这样,我可以做些什么来加快性能?这是我如何使用XML和二进制文件的片段:
XML序列化:
public string Serialize(T obj)
{
UTF8Encoding encoding = new UTF8Encoding();
XmlSerializer serializer = new XmlSerializer(typeof(T));
MemoryStream stream = new MemoryStream();
XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);
serializer.Serialize(stream, obj);
stream = (MemoryStream)writer.BaseStream;
return encoding.GetString(stream.ToArray(), 0, Convert.ToInt32(stream.Length));
}
public T Deserialize(string xml)
{
UTF8Encoding encoding = new UTF8Encoding();
XmlSerializer serializer = new XmlSerializer(typeof(T));
MemoryStream stream = new MemoryStream(encoding.GetBytes(xml));
return (T)serializer.Deserialize(stream);
}
Run Code Online (Sandbox Code Playgroud)
Protobuf-net二进制序列化:
public byte[] Serialize(T obj)
{
byte[] raw;
using (MemoryStream memoryStream = new MemoryStream())
{
Serializer.Serialize(memoryStream, obj);
raw …Run Code Online (Sandbox Code Playgroud) 我知道有很多MP3编码器库,但是它们中的任何一个都可以在PIC单片机上运行吗?
好的,我有一个UIViewTable和一个带有两个范围按钮的UISearchBar.我的想法是,当我按下范围按钮时,UIViewTable的数据源会发生变化,但我收到EXC_BAD_ACCESS错误.
我的UIViewController SearchViewController.m中有以下代码:
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange: (NSInteger) selected scope
{
MyAppDelegate *delegate = (MyAppDelegate *) [[UIApplicationsharedApplication] delegate];
if (self.listData != nil) {
[self.listData release];
}
if (selectedScope == 0) {
self.listData = [delegate.data getListOne];
}
else {
self.listData = [delegate.data getListTwo];
}
}
- (void) viewDidLoad {
MyAppDelegate *delegate = (MyAppDelegate*) [[UIApplication sharedApplication] delegate];
self.listData = [delegate.data getListOne];
//some other unrelated code
}
Run Code Online (Sandbox Code Playgroud)
在我的SearchViewController.h我有:
@property (nonatomic,retain) NSMutableArray *listData;
Run Code Online (Sandbox Code Playgroud)
在我的Data.m中,我有:
-(NSMutableArray *) getListOne {
NSMutableArray *list = [[NSMutableArray alloc] initWithObjects:@"test1", …Run Code Online (Sandbox Code Playgroud) 我想在基类中实现一个函数,但我也希望每次都在派生类中重写它.所以它更像是"抽象的功能,但有一个身体".
我在找什么?我在寻找合适的东西吗?
我有一点问题 - 但希望答案很简单:)
假设我有一个非常简单的页面链接和iframe(仅用于简单示例).
<body>
<a href="test.html" target="mframe">open link></a>
<iframe name="mframe" [params] />
</body>
Run Code Online (Sandbox Code Playgroud)
因此,当您单击链接时,它将在框架中加载test.html.
现在我将使用div和ajax调用更改iframe.
<body>
<a href="doAjaxCall('test.html')">open link</a>
<div id="main-content"></div>
</body>
Run Code Online (Sandbox Code Playgroud)
doAjaxCall将简单地使用GET ajax requset来获取整个响应,解析它(使用JavaScript)并获取<body>标记中的内容并将其放入main-content.innerHTML中.
test.html包含很多html,也有css样式(但与父页面上的相同 - 所以当我使用ajax解决方案时我不需要它们).
题:
为什么这个ajax解决方案更快?我还在下载相同数量的数据(下载整个test.html).
为什么iframe解决方案如此之慢?是因为浏览器必须再次解析所有可能的样式?或者iframe还有其他开销吗?
我是一名新的NetBeans用户.当我加载我的项目时,一些文件已经褪色.当我将光标放在它们上面时,它们显示为"忽略".为什么?所有JAR文件和类文件也被忽略.
我想使用可以在尽可能多的平台和语言上理解和解析的日期时间格式字符串(可能是UTC)?至少PHP,Python,Perl,Java,Rails和一些常见的C++库应该能够理解它.
我应该使用哪一个?
来自MSDN的示例:
Culture: English (United States)
(d) Short date: . . . . . . . 4/17/2006
(D) Long date:. . . . . . . . Monday, April 17, 2006
(t) Short time: . . . . . . . 2:29 PM
(T) Long time:. . . . . . . . 2:29:09 PM
(f) Full date/short time: . . Monday, April 17, 2006 2:29 PM
(F) Full date/long time:. . . Monday, April 17, 2006 2:29:09 PM …Run Code Online (Sandbox Code Playgroud) 我正在建立teamcity和msbuild以使我们的构建过程自动化比现在更多.我们正在处理的每个项目都被设置为teamcity中的一个单独项目,并且每个项目都设置有3个构建配置:开发,登台和实时.开发是我们在每次签入后运行的标准CI构建.暂存和实时执行构建和部署到适当的环境.
我们的实时版本将使用teamcity计数器编号.但我想设置staging构建来将其构建编号为下一个Live构建的beta.因此,如果实时构建版本为6,那么我想将我的暂存版本编号为v7b1,v7b2等.有没有办法在teamcity中或作为msbuild脚本的一部分执行此操作?
编辑 因为有许多downvotes和那些不理解我要求的人,我会改写:
我如何在运行时发现foo被泛化的类是什么?
public boolean doesClassImplementList(Class<?> genericClass)
{
// help me fill this in
// this method should return true if genericClass implements List
// I can't do this because it doesn't compile:
return genericClass instanceof List;
}
Run Code Online (Sandbox Code Playgroud) 我正在阅读我的Deitel,Java How to Program一书,并且遇到了阴影这个词.如果允许阴影,Java类中的情况或用途是什么?
例:
public class Foo {
int x = 5;
public void useField() {
System.out.println(this.x);
}
public void useLocal() {
int x = 10;
System.out.println(x);
}
}
Run Code Online (Sandbox Code Playgroud) c# ×3
.net ×2
java ×2
ajax ×1
class ×1
css ×1
datetime ×1
deployment ×1
embedded ×1
encoder ×1
generics ×1
html ×1
iframe ×1
inheritance ×1
iphone ×1
javascript ×1
mp3 ×1
msbuild ×1
netbeans ×1
objective-c ×1
pic ×1
protobuf-net ×1
shadowing ×1
teamcity ×1